Come posso utilizzare le immagini di container con Lambda?

Ultimo aggiornamento: 26/10/2022

Desidero creare immagini di container AWS Lambda con dipendenze. Come posso farlo?

Risoluzione

Verifica di avere le autorizzazioni configurate per l'utente o il ruolo IAM che crea le immagini del container Lambda. Quindi, segui questi passaggi per utilizzare Docker per distribuire le immagini di container:

1.    Vai alla pagina Web Get Docker. Scegli l'applicazione Docker Desktop che soddisfa i tuoi requisiti. Segui le istruzioni fornite per installare Docker Desktop.
Nota: Docker è un sito Web di terze parti.

2.    Sul computer locale, crea una cartella con tre file: Dockerfile, requirements.txt con le librerie e app.py con le istruzioni di importazione. Nota: utilizza la versione più recente del registro pubblico di Python per Amazon Elastic Container Registry (Amazon ECR).

Questo esempio di Dockerfile utilizza 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" ]

Questo file app.py di esempio include un'istruzione di importazione di esempio:

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

3.    Crea la tua immagine Docker con il comando docker build e un nome dell'immagine.

Questo è un comando docker build con un esempio "hello-world":

docker build -t hello-world .

4.    Avvia l'immagine Docker con il comando docker run.

Questo è un comando docker run con un esempio "hello-world":

docker run -p 9000:8080 hello-world

5.    Testa la tua applicazione utilizzando il Lambda Runtime Interface Emulator (RIE). Da una nuova finestra del terminale, pubblica un evento sul seguente endpoint utilizzando un comando curl:

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

Questo comando richiama la funzione in esecuzione nell'immagine del container e quindi restituisce una risposta.

6.    Autentica l'interfaccia a riga di comando Docker nel registro Amazon ECR. Cambia l'ID dell'account e la regione AWS nel comando per assicurarti che soddisfi i tuoi requisiti.

Questo è un esempio di autenticazione dell'interfaccia a riga di comando Docker nel registro 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.    Crea un repository in Amazon ECR utilizzando il comando create-repository.

Questo è un esempio di comando create-repository:

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

8.    Assegna un tag all'immagine in modo che corrisponda al nome del repository utilizzando il comando docker tag. Quindi, distribuisci l'immagine su Amazon ECR utilizzando il comando docker push.

Cambia l'ID dell'account e la regione AWS in questi comandi per assicurarti che soddisfino i tuoi requisiti.

Questo è un esempio di comando docker tag:

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

Questo è un esempio di comando docker push:

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

9.    Con l'immagine del container nel registro dei container Amazon ECR, crea ed esegui una funzione Lambda. Per ulteriori informazioni, consulta Creating the function (Creazione di una funzione).


Questo articolo è stato utile?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?