Insertar un ApiKey en un plan de uso en AWS

Higarigaoka - Odaiba, Sin comentarios

Hola,

Si necesitan insertar un ApiKey en 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 insertar un ApiKey en un plan de uso.
*
* @param pStrApiKey Define el ApiKey del usuario a insertar.
* @param pStrPlanID Define el Id del plan de uso al cual se va insertar el usuario.
*/
public boolean insertarApiKeyEnPlanDeUso(String pStrApiKey, String pStrPlanID) {

try {

/*
* instancia del cliente en amazon
*/
AmazonApiGateway apiGateway = AmazonApiGatewayClientBuilder.standard().withRegion(Regions.US_EAST_1).build();

/*
* se consulta el apikeyid en dynamodb
*/
String apiKeyId = obtenerApiKeyId(pStrApiKey);

/*
* Use existing usage plan
*/
com.amazonaws.services.apigateway.model.CreateUsagePlanKeyRequest usagePlanReq
= new com.amazonaws.services.apigateway.model.CreateUsagePlanKeyRequest();
usagePlanReq.setUsagePlanId(pStrPlanID);//ID del UsagePlan nuevo
usagePlanReq.setKeyId(apiKeyId);//ID del ApiKey del usuario que se va a eliminar del plan
usagePlanReq.setKeyType("API_KEY");

log.log(Level.INFO, "id[{0}] Antes de insertar en el plan de uso con ID: {1} ",
new Object[]{Thread.currentThread().getId(), pStrPlanID});

/*
* adiciona el ApiKey al nuevo plan de uso
*/
apiGateway.createUsagePlanKey(usagePlanReq);

log.log(Level.INFO, "id[{0}] Se inserto el ApiKey: {1} en el plan de uso: {2} exitosamente.",
new Object[]{Thread.currentThread().getId(), strApiKey, strPlanID});

return true;

} catch (Exception exception) {
log.log(Level.WARNING, "id[{0}] Exception en el metodo insertarApiKeyEnPlanDeUso(), la advertencia es: {1} ",
new Object[]{Thread.currentThread().getId(), exception});
}

return false;

}

0 comentarios :

Publicar un comentario