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(S tring 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.CreateUsagePl anKeyRequest();
usagePlanReq.setUsagePlanId(p StrPlanID);//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