apirest-dropwizard

Api restfull con maven y dropwizard


##AWS


Se implementan dos formas para la obtencion de las credenciales de aws, por el archivo credentialsy por variables de ambiente.

El archivo credentials debe estar ubicado en el HOME del usuario:

~/.aws/credentials

~/ cat .aws/credentials

[default]
aws_secret_access_key=aaaa
aws_access_key_id=zzzz

Para la implementación de las credienciales verificar en el resultado del siguiente Compare en gitHub los cambios a los siguientes archivos:

rest/src/main/java/com/isortegah/rest/ApiRestService.java rest/src/main/java/com/isortegah/rest/RestConfiguration.java aws/pom.xm aws/src/main/java/com/isortegah/aws/AwsCredentials.java aws/src/main/java/com/isortegah/aws/AwsS3.java dtos/src/main/java/com/isortegah/dtos/configAws/ConfigAws.java

Para el caso de las credenciales vía variables de ambiente el proceso es el siguiente:

  • Exportar las variables:
    export AWS_ACCESS_KEY_ID="xyz"
    export AWS_SECRET_ACCESS_KEY="aaa"
    

    En MacOs y Linux agregarlas en el archivo .bashrc o .bash_profile y recargarlo.

    source .bash_profile
    

    Para Windows usar el comando:

    set AWS_ACCESS_KEY_ID="xyz"
    set AWS_SECRET_ACCESS_KEY="aaa"
    

    Lo anterior para poder ejecutar el comando:

    java -jar rest/target/rest-0.1-SNAPSHOT.jar server config.yml
    
  • En el archivo config.ymlcambiar el valor File por Environment.
    aws: 
    credentialProvider: Environment
    

Para la implementación de las credenciales vía variables de ambiente ver la siguiente Comparación en github, los archivos a revisar son:

aws/src/main/java/com/isortegah/aws/AwsCredentials.java

Ejecución

Se presentan las siguientes opciones de ejecución de la imagen docker.

  • De forma directa:
docker run -it -p 8080:8080 -e PORT=8080 -e AWS_ACCESS_KEY_ID=xyzqwd -e AWS_SECRET_ACCESS_KEY=aaa fba5ce1e06db
  • Vía docker-compose:
    • Crear archivo docker-compose.yml ```yml version: ‘3’ services: web: image: api-rest env_file:
      • ./.env environment:
      • AMBIENTE=”DEV” ports:
      • “8080:8080” ```
    • Crear archivo .env donde registraremos las variables de ambiente
AWS_ACCESS_KEY_ID=xyz
AWS_SECRET_ACCESS_KEY=aaa

Nota: Lo recomendable por practico y seguro, cuando ejecutemos en local, es usar el docker-compose, en el caso que estemos desarrollando podemos utilizar el archivo de credenciales.