Hola,
Si necesitan eliminar un ApiKey de un plan de uso mediante código (en este caso Java) y solo les aparece para hacerlo con CLI (interfaz de línea de comandos de AWS), pueden utilizar el siguiente código, eso sí, deben pasarle el ApiKey y el ID del plan de uso del cual desean obtener los datos.
A nivel del build.gradle va esto:
dependencies {
implementation 'com.amazonaws:aws-lambda-java-core:1.2.0' /**
* AWS
*/
compile group: 'com.amazonaws', name: 'aws-java-sdk-dynamodb', version: '1.11.789'
compile group: 'software.amazon.awssdk', name: 'core', version: '2.0.0-preview-9'
compile group: 'software.amazon.awssdk', name: 'api-gateway', version: '2.0.0-preview-9'
compile group: 'software.amazon.awssdk', name: 'cognitoidp', version: '2.0.0-preview-9'
compile group: 'com.amazonaws', name: 'aws-java-sdk-ec2', version: '1.11.923'
compile group: 'com.amazonaws', name: 'aws-java-sdk-api-gateway', version: '1.11.923'compile "org.slf4j:slf4j-simple:1.6.1"
}
A nivel de la clase propia del método, va esto:
import com.amazonaws.regions.Regions;
import com.amazonaws.services. apigateway.AmazonApiGateway;
import com.amazonaws.services. apigateway. AmazonApiGatewayClientBuilder;
import software.amazon.awssdk.core. AwsRequestOverrideConfig;
import software.amazon.awssdk. services.apigateway. APIGatewayClient;
import software.amazon.awssdk. services.apigateway.model. GetApiKeysRequest;
import software.amazon.awssdk. services.apigateway.model. GetApiKeysResponse;
import java.util.logging.Level;
import java.util.logging.Logger;
private static final java.util.logging.Logger log = Logger.getLogger(" NombreClaseDelCodigo");
/**
* Metodo encargado de eliminar un ApiKey de un plan de uso.
*
* @param pStrApiKey Define el ApiKey a eliminar.
* @param pStrPlanID Define el Id del plan de uso que se va a eliminar.
*/
public boolean eliminarApiKeyDePlanUso(String pStrApiKey, String pStrPlanID) {
try {
/*
* instancia del cliente de Amazon
*/
AmazonApiGateway apiGateway = AmazonApiGatewayClientBuilder. standard().withRegion(Regions. US_EAST_1).build();
/*
* se consulta el apikeyid en DynamoDB
*/
String apiKeyId = this.obtenerApiKeyId(pStrApiKey);
com.amazonaws.services. apigateway.model. DeleteUsagePlanKeyRequest deleteRequest =
new com.amazonaws.services. apigateway.model.DeleteUsagePl anKeyRequest();
deleteRequest.setKeyId(apiKeyI d);//ID del ApiKey del usuario que se va a eliminar del plan
deleteRequest.setUsagePlanId(pStrPlanID);//ID del UsagePlan que se va a eliminar
/*
* elimina el usuario del plan de uso
*/
apiGateway.deleteUsagePlanKey( deleteRequest);
log.log(Level.INFO, "id[{0}] Se elimino el ApiKey: {1} del plan de uso: {2} exitosamente.",
new Object[]{Thread.currentThread( ).getId(), pStrApiKey, pStrPlanID});
return true;
} catch (Exception exception) {
log.log(Level.WARNING, "id[{0}] Exception en el metodo eliminarApiKeyDePlanUso(), " +
"la advertencia es: {1} ",
new Object[]{Thread.currentThread( ).getId(), exception});
}
return false;
}
0 comentarios :
Publicar un comentario