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 p StrApiKey, 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