Come faccio a dare accesso a internet a una funzione Lambda connessa ad Amazon VPC?
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. Anche quando associ una funzione Lambda a una sottorete pubblica, questa non può connettersi a Internet perché la funzione ha un indirizzo IP privato.
Per consentire alla funzione Lambda di accedere tramite Internet alle risorse in un VPC di un account AWS, aggiungi un gateway NAT o un'istanza NAT. La configurazione limita la funzione alle risorse all'interno del VPC, a meno che il VPC non abbia accesso a Internet.
Nota: puoi utilizzare endpoint VPC di interfaccia per connetterti ai servizi AWS supportati dall'interno di una connessione Amazon VPC senza accesso a Internet.
Risoluzione
Consulta le seguenti risorse per verificare che consentano l'accesso a Internet in uscita alla funzione Lambda:
- Tabelle di routing delle sottoreti
- Regole dei gruppi di sicurezza
- Regole della lista di controllo degli accessi alla rete (ACL)
Se una di queste risorse non garantisce l'accesso a Internet alla funzione Lambda, riconfigura la risorsa per concederglielo. Puoi eseguire il runbook AWSSupport-TroubleshootLambdaInternetAccess o puoi concedere manualmente l'accesso a Internet.
Utilizza il runbook AWSSupport-TroubleshootLambdaInternetAccess
Prerequisito
Prima di avviare il runbook, assicurati che l'utente o il ruolo AWS Identify and Access Management (AWS IAM) abbia le autorizzazioni richieste. Per ulteriori informazioni, consulta la sezione Autorizzazioni IAM richieste in AWSSupport-TroubleshootLambdaInternetAccess.
Completa i seguenti passaggi:
- Apri la console Systems Manager.
- Nel pannello di navigazione, espandi Strumenti di gestione delle modifiche, quindi Automazione.
- Scegli Esegui runbook.
- Scegli la scheda Proprietà di Amazon, quindi cerca TroubleshootLambdaInternetAccess.
- Scegli la scheda AWSSupport-TroubleshootLambdaInternetAccess.
Nota: Non scegliere il nome dell'automazione. - Scegli Avanti.
- Scegli Esegui.
Esamina l'output del runbook per determinare ciò che ha causato la perdita dell'accesso a Internet della funzione Lambda e come risolvere il problema.
Concedi manualmente l'accesso a Internet
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.
Utilizza un gateway Internet per aggiungere l'accesso a Internet alla sottorete
Crea un gateway Internet. Quindi collegalo al VPC.
Crea un gateway NAT
Crea un gateway NAT. In Sottorete, seleziona la sottorete che vuoi rendere pubblica. Ad esempio, scegli Sottorete pubblica.
(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 utilizza una sottorete configurata in modo errato, ricevi un errore. Per evitare il problema, assicurati che la configurazione sia uguale per tutte le sottoreti utilizzate dalla funzione.
Per configurare le tabelle di routing personalizzate, completa i seguenti passaggi:
- Crea una tabella di routing per la sottorete pubblica e una per la sottorete privata.
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, utilizza Public subnet e Private Lambda. - Associa le sottoreti private e pubbliche alle tabelle di routing.
- Aggiungi una nuova route alle tabelle di routing e includi le seguenti configurazioni:
In Destinazione inserisci 0.0.0.0/0.
Per Destinazione, scegli Internet gateway per la sottorete pubblica e inserisci l'ID del gateway Internet. Scegli Gateway NAT per la sottorete privata e inserisci l'ID del gateway NAT.
Importante: se usi un'istanza NAT anziché un gateway NAT, scegli Interfaccia di rete anziché Gateway NAT. - Scegli Salva route.
Nota: assicurati che le route verso il gateway NAT abbiano lo stato Attivo. Se elimini il gateway NAT e non hai aggiornato le route, queste hanno lo stato Blackhole.
Esamina la configurazione della lista di controllo degli accessi di rete
L'ACL predefinita nel VPC consente tutto il traffico in entrata e in uscita. Se modifichi le regole dell'ACL, ricordati di consentire le richieste in uscita dalla funzione Lambda. Inoltre, assicurati che l'ACL consenta il seguente traffico in entrata:
- Per una sottorete privata che utilizza un gateway NAT, consenti il traffico in entrata sulle porte effimere 1024-65535.
- Per una sottorete privata che utilizza un'istanza NAT, consenti il traffico in entrata sulle porte effimere utilizzate dal sistema operativo dell'istanza NAT.
Per ulteriori informazioni, consulta Come garantire la privacy del traffico Internet 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. Per Sottoreti, seleziona la sottorete privata. Per Gruppi di sicurezza, seleziona un gruppo di sicurezza.
Nota: il gruppo di sicurezza predefinito consente tutto il traffico Internet in uscita ed è sufficiente per la maggior parte dei casi d'uso. Per ulteriori informazioni, consulta Control traffic to your AWS resources using security groups.
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
Risoluzione dei problemi di rete 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?
- Argomenti
- ServerlessEnd User ComputingCompute
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa