Ir para o conteúdo

Como faço para me conectar ao DynamoDB a partir de uma instância do Lambda em uma VPC?

3 minuto de leitura
0

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:

  1. Abra o console do Lambda.
  2. No painel de navegação, clique em Funções.
  3. Selecione Criar função.
  4. Clique em Criar do zero.
  5. 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.
  6. 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.
  7. Selecione Criar função.
  8. 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.
  9. Clique em Implantar.
  10. 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

AWS OFICIALAtualizada há 2 anos