Come faccio a dare accesso a internet a una funzione Lambda connessa ad Amazon VPC?

5 minuti di lettura
0

Desidero concedere l'accesso a internet a una funzione AWS Lambda con una connessione ad Amazon Virtual Private Cloud (Amazon VPC).

Breve descrizione

Per impostazione predefinita, le funzioni Lambda vengono eseguite in un VPC gestito da Lambda con accesso a internet. Per accedere alle risorse in un VPC nel tuo account AWS, aggiungi una configurazione VPC alla funzione. Questa configurazione limita la funzione alle risorse all'interno del VPC, a meno che il VPC non abbia accesso a internet.

Anche quando associ una funzione Lambda a una sottorete pubblica, la funzione non può connettersi direttamente a internet. Una funzione in un VPC ha un indirizzo IP privato e richiede un gateway NAT o un'istanza NAT per consentire al VPC di accedere a internet.

Nota: puoi anche usare endpoint VPC per la connessione ai servizi AWS supportati da un Amazon VPC senza accesso a internet.

Risoluzione

Crea una sottorete pubblica e una sottorete privata in Amazon VPC

Crea una sottorete privata per la funzione Lambda e una sottorete pubblica per il gateway NAT. Nel campo Tag del nome inserisci un nome per ogni sottorete che la identifichi come pubblica o privata. Ad esempio, usa Public subnet, Private Lambda 1 e Private Lambda 2.

Nota: è consigliabile creare più di una sottorete privata in diverse Zone di disponibilità. Questa operazione crea ridondanza e consente a Lambda di mantenere un'alta disponibilità per la funzione.

Usa un gateway internet per aggiungere l'accesso a internet alla sottorete

Crea un gateway internet e collegalo al VPC.

Crea un gateway NAT

Crea un gateway NAT. In Sottorete scegli la sottorete che vuoi rendere pubblica. Ad esempio, scegli Public subnet.

(Facoltativo) Verifica la configurazione del gateway NAT.

Crea due tabelle di routing personalizzate

Nota: quando una funzione Lambda in un VPC effettua richieste, la funzione seleziona casualmente una sottorete associata. Se la funzione usa una sottorete configurata in modo errato, viene generato un errore. Per evitare questo problema, assicurati di usare la stessa configurazione per tutte le sottoreti utilizzate dalla funzione.

Per configurare le tabelle di routing personalizzate, completa i passaggi seguenti sia per la sottorete pubblica che per quella privata:

  1. Crea una tabella di routing personalizzata. Nel campo Tag del nome inserisci per ogni tabella di routing un nome che ti aiuti a identificare la sottorete a cui è associata. Ad esempio, usa Public subnet e Private Lambda.
  2. Associa la tabella di routing della sottorete alla sottorete privata o pubblica.
  3. Aggiungi una nuova route alla tabella di routing e includi le configurazioni seguenti:
    In Destinazione inserisci 0.0.0.0/0.
    In Target scegli Gateway Internet o Gateway NAT. Per la sottorete pubblica, seleziona l'ID del gateway internet. Per la sottorete privata, seleziona l'ID del gateway NAT.
    Importante: se usi un'istanza NAT anziché un gateway NAT, scegli Interfaccia di rete anziché Gateway NAT.
  4. Scegli Salva route.

Nota: assicurati che le route verso il gateway NAT abbiano lo stato Attivo. Se il gateway NAT viene eliminato e non hai aggiornato le route, queste assumeranno lo stato Blackhole. Per ulteriori informazioni, consulta Delete a NAT gateway.

Esamina la configurazione della lista di controllo degli accessi di rete

La lista di controllo degli accessi di rete (ACL) predefinita nel VPC consente tutto il traffico in entrata e in uscita. Se cambi le regole dell'ACL di rete, assicurati di consentire le richieste in uscita dalla tua funzione Lambda. Inoltre, assicurati che l'ACL di rete consenta il traffico in entrata seguente:

  • Per le sottoreti private che usano un gateway NAT, consenti il traffico in entrata sulle porte temporanee 1024-65535.
  • Per le sottoreti private che utilizzano un'istanza NAT, consenti il traffico in entrata sulle porte temporanee utilizzate dal sistema operativo dell'istanza NAT.

Per ulteriori informazioni, consulta Ensure internetwork traffic privacy in Amazon VPC.

Crea un ruolo di esecuzione Lambda

Crea un ruolo di esecuzione Lambda per il VPC. Quindi aggiorna la funzione Lambda in modo che utilizzi il nuovo ruolo di esecuzione Lambda.

Configura la funzione Lambda per la connessione al VPC

Collega la funzione al VPC e configura le impostazioni seguenti:

Per le funzioni Lambda con una connessione Amazon VPC, puoi utilizzare un gateway internet solo in uscita per accedere a internet. Per ulteriori informazioni, consulta IPv6 support.

Informazioni correlate

Troubleshoot networking issues in Lambda

Come posso risolvere i problemi di timeout di una funzione Lambda presente in un Amazon VPC?

How do I troubleshoot an ETIMEDOUT error in my Lambda function?

Giving Lambda functions access to resources in an Amazon VPC

Come faccio a risolvere i problemi relativi alla funzione Lambda?

AWS UFFICIALE
AWS UFFICIALEAggiornata un mese fa