Quero integrar o Amazon DynamoDB com minha instância do AWS Lambda em uma Amazon Virtual Private Cloud (Amazon VPC).
Resolução
Pré-requisitos:
Conecte o Lambda ao DynamoDB
Conclua as etapas a seguir:
- Abra o console do Lambda.
- No painel de navegação, clique em Funções.
- Selecione Criar função.
- Clique em Criar do zero.
- Em Informações básicas, configure o seguinte:
Em Nome da função, insira um nome para sua função.
Em Runtime, escolha uma opção de runtime. Neste exemplo, Python 3.12 é usado.
Em Arquitetura, selecione x86_64.
- Em Configurações avançadas, defina o seguinte:
Clique em Habilitar VPC e, em seguida, selecione sua VPC.
Em Sub-redes, selecione apenas as sub-redes privadas.
Em Grupos de segurança, selecione o grupo de segurança padrão.
- Selecione Criar função.
- Na página Detalhes da função, em Origem do código, insira o seguinte código:
import json
import boto3
client = boto3.client('dynamodb')
def lambda_handler(event, context):
response = client.get_item(
TableName='Music',
Key={
'Artist': {
'S': 'No One You Know',
},
'SongTitle': {
'S': 'Call Me Today',
},
}
)
print(response)
return {
'statusCode': 200,
'body': json.dumps('Success!')
}
Observação: substitua TableName e Key por seus valores.
- Clique em Implantar.
- Teste sua função.
Observação: para testar a função, o perfil do AWS Identity and Access Management (AWS IAM) no Lambda deve ter as permissões apropriadas. Para obter mais informações, consulte Gerenciando permissões no AWS Lambda.
Solução de problemas extra
Para solucionar problemas de uma função do Lambda anexada a uma VPC, realize as seguintes ações:
-
Remova todas as conexões com sub-redes públicas da sua função do Lambda. Se você se conectar a sub-redes públicas, o tráfego tenta passar pelas sub-redes públicas e pode causar problemas intermitentes de tempo limite.
-
Certifique-se de que seu endpoint de gateway no DynamoDB esteja configurado corretamente.
-
Atualize suas sub-redes privadas associadas à sua função do Lambda para rotear pelo seu endpoint do gateway da VPC do DynamoDB. Esses endpoints têm listas de prefixos gerenciadas pela AWS que simplificam a configuração das configurações de grupos de segurança entre o Lambda e o DynamoDB.
Exemplo de tabela de rotas de sub-rede privada:
Route Table: rtb-12345
Destination Gateway Status
10.0.0.0/16 local active
pl-1234 vpce-1234 active
-
Atualize as regras do grupo de segurança do Lambda para permitir todo o tráfego.
Informações relacionadas
Criar uma função do Lambda com o console
Usar endpoints da Amazon VPC para acessar o DynamoDB
Habilitar o acesso à Internet para funções do Lambda conectadas à VPC