Eliminar un ApiKey de plan de uso en AWS

Higarigaoka - Odaiba, Sin comentarios

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.DeleteUsagePlanKeyRequest();
deleteRequest.setKeyId(apiKeyId);//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