Ir para o conteúdo

Como eu uso imagens de contêiner com o Lambda?

3 minuto de leitura
0

Quero criar imagens de contêiner do AWS Lambda com dependências.

Resolução

Verifique se você tem permissões configuradas para o usuário ou perfil do AWS Identity and Access Management (AWS IAM) que cria as imagens de contêiner do Lambda. Em seguida, siga estas etapas para usar o Docker para implantar suas imagens de contêiner:

  1. Acesse a página Get Docker (Obter Docker) no site do Docker. Selecione a aplicação Docker Desktop que atende aos seus requisitos. Siga as instruções fornecidas para instalar o Docker Desktop.

  2. Na sua máquina local, crie uma pasta com três arquivos: Dockerfile, requirements.txt com bibliotecas e app.py com instruções de importação.
    Observação: use a versão mais recente do Python para o registro público do Amazon Elastic Container Registry (Amazon ECR).

    O exemplo de Dockerfile a seguir usa o 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" ]

    O exemplo de arquivo app.py a seguir inclui um exemplo de declaração de importação:

    import sysdef handler(event, context):
        return 'Hello from AWS Lambda using Python' + sys.version + '!'
  3. Crie sua imagem do Docker com o comando docker build e um nome de imagem.

    Este é um comando docker build com um exemplo de "hello-world":

    docker build -t hello-world .

    Observação: se você receber um erro de autenticação ao extrair do repositório público do Amazon ECR, consulte Amazon ECR Public troubleshooting (Solução de problemas do Amazon ECR Public).

  4. Inicie a imagem do Docker com o comando docker run.

    Este é um comando docker run com um exemplo de "hello-world":

    docker run -p 9000:8080 hello-world
  5. Teste sua aplicação com o emulador Lambda Runtime Interface (RIE) da AWS no site do GitHub. Em uma nova janela de terminal, execute um comando curl para publicar um evento no seguinte endpoint:

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

    Esse comando invoca a função running (em execução) na imagem do contêiner e, em seguida, retorna uma resposta.

  6. Autentique a CLI do Docker em seu registro do Amazon ECR.
    Altere o ID da conta e a região da AWS no comando para o ID e a região da sua conta.

    Este é um exemplo de comando para autenticar a CLI do Docker no registro do 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. Crie um repositório no Amazon ECR usando o comando create-repository.

    Este é um exemplo do comando create-repository:

    aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE
  8. Marque sua imagem para combinar o nome do seu repositório com o comando docker tag. Em seguida, implante a imagem no Amazon ECR com o comando docker push.
    Altere o ID da conta e a região da AWS no comando para o ID e a região da sua conta.

    Este é um exemplo do comando docker tag:

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

    Este é um exemplo do comando docker push:

    docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest
  9. Com sua imagem de contêiner no registro de contêiner do Amazon ECR, crie e execute uma função do Lambda. Para obter mais informações, consulte Criar uma função do Lambda usando uma imagem de contêiner.

AWS OFICIALAtualizada há 2 anos