Como criar e compartilhar camadas lambda

Como criar e compartilhar camadas lambda
A camada lambda é uma maneira inteligente de empacotar as dependências e bibliotecas que simplificam a implantação sem servidor. Camada é na verdade um arquivo zip que contém todas as dependências. Ele encolhe o tamanho do pacote de implantação e torna sua implantação mais robusta. Às vezes, é necessário usar a função Lambda múltipla para o seu aplicativo e toda função lambda requer algumas mesmas bibliotecas, por exemplo solicitações de biblioteca. Nesse caso, você precisa criar a camada que possui a biblioteca de solicitações e anexe a camada com suas funções lambda. Neste blog, estudaremos como criar a camada lambda e como usá -la na sua função lambda.

Criando camada lambda

A AWS fornece as quatro maneiras seguintes de criar as camadas em Lambda:

  • AWS Console
  • CloudFormation
  • Lambda API
  • Sam (modelo de aplicativo sem servidor)

Neste blog, usaremos o console da AWS para criar a camada lambda que inclui o solicitações de módulo. Para criar a camada, crie um diretório vazio primeiro para adicionar o código para a camada.

ubuntu@ubuntu: ~ $ mkdir Demo_requests

Vá para o diretório recém -criado e instale o solicitações de módulo.

ubuntu@ubuntu: ~ $ CD Demo_requests
ubuntu@ubuntu: ~ $ pip3 Instale solicitações -t .

Este comando instala o solicitações de biblioteca nesta pasta. Para usar isso solicitações de Módulo como uma camada, ZIP esta pasta primeiro usando o seguinte comando:

ubuntu@ubuntu: ~ $ zip -r Demo_requests.ZIP Demo_Requests

Depois de criar um arquivo zip do módulo, vá para o seu console Lambda e clique no Camadas guia do painel lateral esquerdo.

Ele abre o console de camadas lambda. Você pode adicionar sua camada clicando no criar camada botão.

Uma nova página parece inserir os detalhes da camada lambda. Forneça o nome e a descrição da camada. Para esta demonstração, usamos o Demo_layer como o nome da camada.

Agora, existem duas opções para fornecer o código à camada - uma é fazer upload de um arquivo zip e o outro é fazer o upload do código do console S3. Para esta demonstração, carregamos o arquivo zip que inclui o solicitações de módulo.

Para Arquitetura compatível opções, deixe -o em branco e não verifique nenhuma caixa para esta opção. Como nosso código de camada inclui um solicitações de módulo que é um módulo python, o tempo de execução para esta camada é Pitão. Depois de inserir toda a configuração de camada necessária, clique em criar botão para criar a camada.

Usando a camada lambda na sua função lambda

Na seção anterior, criamos uma camada lambda que inclui um solicitações de módulo. Agora, nesta seção, adicionamos esta camada lambda em nossa função lambda. Para adicionar uma camada lambda na função Lambda, clique na função Lambda e role para baixo até o camadas seção.

Clique no anúnciod uma camada botão para adicionar uma nova camada à sua função Lambda. Ele abre uma nova página que pede detalhes da camada lambda. Existem três tipos de fontes de camada lambda:

  • Camadas aws
  • Camadas personalizadas
  • Especifique um ARN

Para adicionar uma camada à função Lambda que criamos em nossa conta, precisamos selecionar a opção Camadas personalizadas como fonte de camada. Depois de selecionar a fonte da camada, na lista, selecione uma camada que você criou na seção anterior e clique no Adicionar botão para adicionar a camada na sua função Lambda.

Agora, depois de adicionar a camada, você não precisa instalar o solicitações de módulo em sua função lambda enquanto importamos o solicitações de módulo através da camada lambda.

Compartilhando camadas lambda

Por padrão, a camada lambda é privada e só pode ser usada em sua conta AWS. Mas você pode gerenciar as permissões da sua camada Lambda usando a interface da linha de comando para compartilhar as camadas com outra conta ou organização da AWS. O AWS Console não tem o recurso de compartilhar as camadas lambda com outras contas da AWS. O Adicionar camada-version-permission O método é usado para compartilhar as camadas usando a interface da linha de comando. Nas próximas seções do blog, veremos como podemos compartilhar as camadas lambda com outras contas ou organizações da AWS.

Compartilhando a camada lambda em uma conta AWS específica

Para compartilhar a camada lambda, o Adicionar camada-version-permission Método de interface da linha de comando é usado. Você precisa especificar o nome da camada que deseja compartilhar o ID da conta de instrução-ID, versão de versão e AWS com o qual deseja compartilhar a camada. A seguir, é apresentado o comando para compartilhar a camada lambda com outra conta da AWS usando a interface da linha de comando:

ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Demo_layer \ nome-nomes de camada \
--Ação Lambda: GetLayerversion \
--Declaração-ID de ID-1 \
--número de versão 1
--diretor \

Compartilhando a camada lambda publicamente

Para compartilhar uma camada lambda em sua conta da AWS publicamente para estar acessível em todas as contas da AWS, você só precisa alterar o diretor parâmetro do comando que é usado na seção anterior. Em vez de especificar um ID da conta da AWS, você precisa usar um "*" como diretor para compartilhar a camada lambda publicamente em todas as contas da AWS.

ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Demo_layer \ nome-nomes de camada \
--Declaração-ID de Declaração-2 \
--Ação Lambda: GetLayerversion \
--diretor * \
--número de versão 1

Compartilhando a camada lambda com todas as contas da AWS em uma organização

Assim como uma conta da AWS, as camadas lambda também podem ser compartilhadas com todas as contas da AWS em uma organização. Para compartilhar a camada lambda com todas as contas em uma organização, você precisa adicionar o Organização-Id parâmetro no Adicionar camada-version-permission comando. Aqui está o comando de compartilhar a camada Lambda em todas as contas da AWS em uma organização:

ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Demo_layer \ nome-nomes de camada \
--Declaração-Id Declaração-3 \
--Ação Lambda: GetLayerversion \
--diretor * \
--Organização-Id \
--número de versão 1

Conclusão

Neste blog, estudamos como criar e compartilhar a camada lambda para reutilizar os pequenos pedaços de nosso código em diferentes funções lambda. Aprendemos como criar um arquivo zip de uma biblioteca de solicitações Python e criamos uma camada lambda usando este arquivo zip. Depois de criar a camada Lambda, adicionamos essa camada de lambda à nossa função Lambda para aumentar a reutilização do código. Além disso, discutimos como podemos compartilhar as camadas lambda com contas específicas da AWS e todas as contas em uma organização.