Como utilizar datos de configuración en AWS

Siempre que creamos o modificamos un proyecto de desarrollo necesitamos almacenar datos, texto, cadenas de conexión a bases de datos ..., para estos casos los lenguajes de desarrollo utilizan diferentes opciones como archivos de configuración.

Para este caso en AWS podemos usar una característica de System Manager llamada Parameter Store que nos va a servir para este fin.

Parameter Store nos permite almacenar tanto datos no cifrados cómo cifrados o tener versiones de nuestro datos de configuración.

Empecemos almacenando los datos que vamos a utilizar dentro de Parameter Store.

  1. En el campo de búsqueda colocamos Parameter Store.

  2. En la siguiente pantalla damos click en Create Parameter:

  1. La siguiente pantalla que vamos a ver, es la de configuración de nuestro parámetro.

En la capa advanced (es de pago) nos da la opción que nuestro parámetro expire, lo cual nos puede servir para actualizar nuestro parámetro cada cierto tiempo, ya sea por temas de seguridad o que el caso de negocio que estamos trabajando así lo requiera.

En el tipo de parámetro podemos almacenar: String, un listado de strings o un string cifrado.Para este caso vamos a utilizar un string.

Opcional podemos agregar un tag a nuestro parámetro que nos puede servir para identificar los recursos que están asociados a una misma aplicación o proyecto.

Después de diligenciar los campos damos click en el botón Create Parameter.

Ahora vamos a obtener nuestro parámetro usando boto3 desde una función lambda (recuerde agregar el Rol las políticas adecuadas).

import json
import boto3

ssm = boto3.client('ssm')
s3 = boto3.client("s3")


def lambda_handler(event, context):

    #Obtenemos el parametro
    nombre_bucket = ssm.get_parameter(Name='nombre_bucket_imagenes', WithDecryption=False)['Parameter']['Value']

    #Obtenemos dos objetos del bucket
    objetos_s3 =s3.list_objects(Bucket= nombre_bucket,MaxKeys=2)


`
En las funciones lambda existe otra forma de leer datos de configuración y son las variables de entorno. Este forma aplica para cada función en particular y es exclusiva de las funciones lambda.

Para poder configurar variables de entorno debe ir a: Configuración - Variables de entorno - Editar

Después configuramos nuestra variable de entorno:

Ahora vamos a acceder a nuestra variable de entorno de la siguiente forma:

`

import json
import boto3
#importamos el paquete os
import os

s3 = boto3.client("s3")


def lambda_handler(event, context):

    #Obtenemos el parametro
    nombre_bucket = os.environ["nombre_bucket_imagenes"]
    #Obtenemos dos objetos del bucket
    objetos_s3 =s3.list_objects(Bucket= nombre_bucket,MaxKeys=2)


`

Referencias

Me pueden encontrar en

Espero sus comentarios y aportes.

17