Consultar el ApiKeyID de un ApiKey en AWS

Higarigaoka - Odaiba, Sin comentarios

Hola,

Si necesitan consultar el id de un ApiKey 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.


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 obtener los datos de un ApiKey, como el Id.
*
* @param pStrValorApiKey Define el valor del Apikey
* @return un String
*/
@Override
public String obtenerApiKeyId(String pStrValorApiKey) throws BusinessException {

try (APIGatewayClient apiGatewayClient = APIGatewayClient.create()) {

AwsRequestOverrideConfig awsRequestOverrideConfig = AwsRequestOverrideConfig.builder().build();
GetApiKeysRequest apiKeyRequest = GetApiKeysRequest.
builder().limit(1000000).includeValues(true).requestOverrideConfig(awsRequestOverrideConfig).build();

GetApiKeysResponse getApiKeyResponse = apiGatewayClient.getApiKeys(apiKeyRequest);

for (int i = 0; i < getApiKeyResponse.items().size(); i++) {
if (getApiKeyResponse.items().get(i).value().equals(pStrValorApiKey)) {
return getApiKeyResponse.items().get(i).id();
}
}

}

throw new BusinessException("Error consultando los datos del ApiKey: " + pStrValorApiKey);

}

0 comentarios :

Publicar un comentario