Salta al contenuto

Come posso connettermi a DynamoDB da un'istanza Lambda in un VPC?

3 minuti di lettura
0

Desidero integrare Amazon DynamoDB con la mia istanza AWS Lambda in un Amazon Virtual Private Cloud (Amazon VPC).

Risoluzione

Prerequisiti:

Connetti Lambda a DynamoDB

Completa i seguenti passaggi:

  1. Apri la console Lambda.
  2. Nel pannello di navigazione, scegli Funzioni.
  3. Scegli Crea funzione.
  4. Scegli Crea da zero.
  5. Per Informazioni di base, configura quanto segue:
    In Nome funzione, inserisci un nome per la funzione.
    Per Runtime, scegli un'opzione di runtime. In questo esempio, viene utilizzato Python 3.12.
    Per Architettura, scegli x86_64.
  6. In Impostazioni avanzate, configura quanto segue:
    Seleziona Abilita VPC, quindi seleziona il VPC.
    Per Sottoreti seleziona solo le sottoreti private.
    Per Gruppi di sicurezza, seleziona il gruppo di sicurezza predefinito.
  7. Scegli Crea funzione.
  8. Nella pagina Dettagli della funzione, alla voce Origine del codice, inserisci il seguente codice:
    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!')
        }
    Nota: sostituisci TableName e Key con i tuoi valori.
  9. Scegli Distribuisci.
  10. Esegui un test della funzione.
    Nota: per il test della funzione, il ruolo AWS Identity and Access Management (AWS IAM) per Lambda deve avere le autorizzazioni appropriate. Per ulteriori informazioni, consulta Gestione delle autorizzazioni in AWS Lambda.

Altre indicazioni sulla risoluzione dei problemi

Per risolvere i problemi di una funzione Lambda collegata a un VPC, intraprendi le seguenti azioni:

  • Rimuovi tutte le connessioni alle sottoreti pubbliche dalla funzione Lambda. Se ti connetti a sottoreti pubbliche, il traffico tenta di attraversare le sottoreti pubbliche e può causare problemi di timeout intermittenti.

  • Assicurati che l'endpoint gateway per DynamoDB sia configurato correttamente.

  • Aggiorna le sottoreti private associate alla funzione Lambda per instradarle attraverso l'endpoint VPC gateway di DynamoDB. Questi endpoint dispongono di elenchi di prefissi gestiti da AWS che semplificano la configurazione delle impostazioni dei gruppi di sicurezza tra Lambda e DynamoDB.
    Esempio di tabella di routing di una sottorete privata:

    Route Table: rtb-12345
    Destination        Gateway     Status
    10.0.0.0/16         local      active
    pl-1234           vpce-1234    active
  • Aggiorna le regole del gruppo di sicurezza Lambda per consentire tutto il traffico.

Informazioni correlate

Creare una funzione Lambda con la console

Che cos'è Amazon DynamoDB?

Abilitare l'accesso a Internet per funzioni Lambda connesse a un VPC

AWS UFFICIALEAggiornata 2 anni fa