¿Cómo utilizo las imágenes de contenedores con Lambda?

3 minutos de lectura
0

Quiero crear imágenes de contenedores de AWS Lambda con dependencias. ¿Cómo se hace?

Resolución

Compruebe que tiene los permisos configurados para el usuario o el rol de IAM que crea las imágenes de contenedor de Lambda. A continuación, siga estos pasos para usar Docker con el objetivo de implementar las imágenes de contenedor:

1.    Vaya a la página web de Get Docker. Elija la aplicación de escritorio de Docker que cumpla con sus requisitos. Siga las instrucciones proporcionadas para instalar Docker Desktop.
Nota: Docker es un sitio web de terceros.

2.    En su máquina local, cree una carpeta con tres archivos: Dockerfile, requirements.txt con bibliotecas y app.py con instrucciones de importación. Nota: Utilice la versión más reciente de Python para el registro público de Amazon Elastic Container Registry (Amazon ECR).

Este ejemplo de Dockerfile usa Python 3.8:

FROM public.ecr.aws/lambda/python:3.8

# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}

# Install the function's dependencies using file requirements.txt
# from your project folder.

COPY requirements.txt .
RUN pip3 install -r requirements.txt —target "${LAMBDA_TASK_ROOT}"

# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.handler" ]

Este archivo app.py de ejemplo incluye una sentencia de importación de ejemplo:

import sys
def handler(event, context):
    return 'Hello from AWS Lambda using Python' + sys.version + '!'

3.    Cree su imagen de Docker con el comando docker build y un nombre de imagen.

Este es un comando docker build con un ejemplo “hello-world” (hola, mundo):

docker build -t hello-world .

4.    Inicie la imagen de Docker con el comando docker run.

Este es un comando docker run con un ejemplo “hello-world” (hola, mundo):

docker run -p 9000:8080 hello-world

5.    Pruebe su aplicación mediante el emulador de interfaz de tiempo de ejecución (Runtime Interface Emulator, RIE) de Lambda. Desde una nueva ventana de terminal, publique un evento en el siguiente punto de conexión mediante un comando curl:

curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'

Este comando invoca la función que se ejecuta en la imagen del contenedor y, a continuación, devuelve una respuesta.

6.    Autentique la CLI de Docker en su registro de Amazon ECR. Cambie el identificador de la cuenta y la región de AWS en el comando para asegurarse de que cumple con sus requisitos.

Este es un ejemplo de autenticación de la CLI de Docker en el registro de Amazon ECR:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com

7.    Cree un repositorio en Amazon ECR mediante el comando create-repository.

Este es un ejemplo de comando create-repository:

aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE

8.    Etiquete su imagen para que coincida con el nombre del repositorio mediante el comando docker tag. A continuación, implemente la imagen en Amazon ECR mediante el comando docker push.

Cambie el identificador de la cuenta y la región de AWS en estos comandos para asegurarse de que cumplen con sus requisitos.

Este es un ejemplo de comando docker tag:

docker tag hello-world:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest

Este es un ejemplo de comando docker push:

docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest

9.    Con la imagen de su contenedor en el registro de contenedores de Amazon ECR, cree y ejecute una función Lambda. Para obtener más información, consulte Creación de la función.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año