Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Lambda funziona come obiettivi in Lattice VPC
Puoi registrare le tue funzioni Lambda come destinazioni con un gruppo target VPC Lattice e configurare una regola listener per inoltrare le richieste al gruppo di destinazione per la tua funzione Lambda. Quando il servizio inoltra la richiesta a un gruppo target con una funzione Lambda come destinazione, richiama la funzione Lambda e passa il contenuto della richiesta alla funzione Lambda, in formato. JSON Per ulteriori informazioni, consulta Using AWS Lambda with Amazon VPC Lattice nella AWS Lambda Developer Guide.
Limitazioni
-
La funzione Lambda e il gruppo di destinazioni devono trovarsi nello stesso account e nella stessa regione.
-
La dimensione massima del corpo della richiesta che puoi inviare a una funzione Lambda è di 6 MB.
-
La dimensione massima della risposta JSON che la funzione Lambda può inviare è di 6 MB.
-
Il protocollo deve essere HTTP oHTTPS.
Preparazione della funzione Lambda
I seguenti consigli si applicano se si utilizza la funzione Lambda con un servizio VPC Lattice.
Autorizzazioni a richiamare la funzione Lambda
Quando crei il gruppo target e registri la funzione Lambda utilizzando AWS Management Console o il AWS CLI, VPC Lattice aggiunge le autorizzazioni richieste alla politica della funzione Lambda per tuo conto.
Puoi anche aggiungere le autorizzazioni da solo utilizzando la seguente chiamata: API
aws lambda add-permission \ --function-name
lambda-function-arn-with-alias-name
\ --statement-idvpc-lattice
\ --principal vpc-lattice.amazonaws.com \ --action lambda:InvokeFunction \ --source-arntarget-group-arn
Controllo delle versioni della funzione Lambda
Puoi registrare una funzione Lambda per gruppo di destinazioni. Per assicurarti di poter modificare la funzione Lambda e che il servizio VPC Lattice richiami sempre la versione corrente della funzione Lambda, crea un alias di funzione e includi l'alias nella funzione ARN quando registri la funzione Lambda con il servizio Lattice. VPC Per ulteriori informazioni, consulta Versioni della funzione Lambda e Creazione di un alias per una funzione Lambda nella Guida per gli sviluppatori.AWS Lambda
Creazione di un gruppo di destinazioni per la funzione Lambda
Creare un gruppo target, che viene utilizzato nell'instradamento delle richieste. Se il contenuto della richiesta corrisponde a una regola del listener con un'azione per inoltrarlo a questo gruppo di destinazione, il servizio VPC Lattice richiama la funzione Lambda registrata.
Per creare un gruppo target e registrare la funzione Lambda utilizzando la console
Apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/
. -
Nel pannello di navigazione, sotto VPCLattice, scegli Target groups.
-
Scegliere Crea gruppo target.
-
Per Seleziona destinazione, scegli Funzione Lambda.
-
In Nome gruppo di destinazione, immetti un nome per il gruppo di destinazione.
-
Per la versione della struttura degli eventi Lambda, scegli una versione. Per ulteriori informazioni, consulta Ricevi eventi dal servizio Lattice VPC.
-
(Facoltativo) Per aggiungere tag, espandi Tag, scegli Aggiungi nuovo tag e inserisci la chiave e il valore del tag.
-
Scegli Next (Successivo).
-
In Funzione Lambda, esegui una delle seguenti operazioni:
-
Seleziona una funzione Lambda esistente.
-
Crea una nuova funzione Lambda e selezionala.
-
Registra la funzione Lambda in un secondo momento.
-
-
Scegliere Crea gruppo target.
Per creare un gruppo di destinazioni e registrare la funzione Lambda tramite AWS CLI
Usa i comandi create-target-groupe register-targets.
Ricevi eventi dal servizio Lattice VPC
Il servizio VPC Lattice supporta la chiamata Lambda per le richieste su entrambi e. HTTP HTTPS Il servizio invia un evento in JSON formato e aggiunge l'X-Forwarded-For
intestazione a ogni richiesta.
Codifica Base64
Il servizio Base64 codifica il corpo se l'content-encoding
intestazione è presente e il tipo di contenuto non è uno dei seguenti:
-
text/*
-
application/json
-
application/xml
-
application/javascript
Se l'intestazione content-encoding
non è presente, la codifica Base64 dipende dal tipo di contenuto. Per i tipi di contenuto sopra indicati, il servizio invia il corpo così com'è, senza codifica Base64.
Formato della struttura degli eventi
Quando crei o aggiorni un tipo di gruppo targetLAMBDA
, puoi specificare la versione della struttura degli eventi ricevuta dalla funzione Lambda. Le versioni possibili sono V1
eV2
.
Esempio Evento di esempio: V2
{
"version": "2.0",
"path": "/",
"method": "GET|POST|HEAD|...",
"headers": {
"header-key
": ["header-value
", ...],
...
},
"queryStringParameters": {
"key
": ["value
", ...]
},
"body": "request-body
",
"isBase64Encoded": true|false,
"requestContext": {
"serviceNetworkArn": "arn:aws:vpc-lattice:region
:123456789012
:servicenetwork/sn-0bf3f2882e9cc805a
",
"serviceArn": "arn:aws:vpc-lattice:region
:123456789012
:service/svc-0a40eebed65f8d69c
",
"targetGroupArn": "arn:aws:vpc-lattice:region
:123456789012
:targetgroup/tg-6d0ecf831eec9f09
",
"identity": {
"sourceVpcArn": "arn:aws:ec2:region
:123456789012
:vpc/vpc-0b8276c84697e7339
",
"type": "AWS_IAM",
"principal": "arn:aws:iam::123456789012
:assumed-role/my-role
/my-session
",
"principalOrgID": "o-50dc6c495c0c9188
",
"sessionName": "i-0c7de02a688bde9f7
",
"x509IssuerOu": "string
",
"x509SanDns": "string
",
"x509SanNameCn": "string
",
"x509SanUri": "string
",
"x509SubjectCn": "string
"
},
"region": "region
",
"timeEpoch": "1690497599177430
"
}
}
body
Il corpo della richiesta. Presente solo se il protocollo è HTTPHTTPS, o g. RPC
headers
Le HTTP intestazioni della richiesta. Presente solo se il protocollo è HTTPHTTPS, o g. RPC
identity
-
Le informazioni sull'identità. I campi possibili sono i seguenti.
principal
— Il principale autenticato. Presente solo se AWS l'autenticazione ha esito positivo.principalOrgID
— L'ID dell'organizzazione per il principale autenticato. Presente solo se AWS l'autenticazione ha esito positivo.sessionName
— Il nome della sessione autenticata. Presente solo se AWS l'autenticazione ha esito positivo.sourceVpcArn
— Il ARN luogo da VPC cui ha avuto origine la richiesta. Presente solo se è VPC possibile identificare la fonte.type
— Il valore èAWS_IAM
se viene utilizzata una politica di AWS autenticazione e l'autenticazione ha esito positivo.
Se vengono utilizzate le credenziali Roles Anywhere e l'autenticazione ha esito positivo, i seguenti sono i campi possibili.
x509IssuerOu
— L'emittente (OU).x509SanDns
— Il nome alternativo del soggetto (DNS).x509SanNameCn
— Il nome alternativo dell'emittente (nome/NC).x509SanUri
— Il nome alternativo del soggetto (). URIx509SubjectCn
— Il nome del soggetto (CN).
isBase64Encoded
Indica se il corpo è codificato in base64. Presente solo se il protocollo è HTTPHTTPS, o g RPC e il corpo della richiesta non è già una stringa.
method
Il HTTP metodo della richiesta. Presente solo se il protocollo è HTTPHTTPS, o gRPC.
path
Il percorso della richiesta. Presente solo se il protocollo è HTTPHTTPS, o gRPC.
queryStringParameters
I parametri della stringa di HTTP interrogazione. Presente solo se il protocollo è HTTPHTTPS, o gRPC.
serviceArn
Il ARN servizio che riceve la richiesta.
serviceNetworkArn
La rete ARN di servizi che consegna la richiesta.
targetGroupArn
Il ARN gruppo target che riceve la richiesta.
timeEpoch
Il tempo, in microsecondi.
Esempio Evento di esempio: V1
{
"raw_path": "/path/to/resource
",
"method": "GET|POST|HEAD|...",
"headers": {"header-key
": "header-value
", ... },
"query_string_parameters": {"key
": "value
", ...},
"body": "request-body
",
"is_base64_encoded": true|false
}
Rispondi al servizio VPC Lattice
La risposta dalla funzione Lambda deve includere lo stato della codifica Base64, il codice di stato e le intestazioni. Puoi omettere il corpo della risposta.
Per includere un contenuto binario nel corpo della risposta, devi sottoporre a codifica Base64 il contenuto e impostare isBase64Encoded
su true
. Il servizio decodifica il contenuto per recuperare il contenuto binario e lo invia al client nel corpo della risposta. HTTP
Il servizio VPC Lattice non rispetta le hop-by-hop intestazioni, come o. Connection
Transfer-Encoding
È possibile omettere l'Content-Length
intestazione perché il servizio la calcola prima di inviare le risposte ai client.
Di seguito è riportato un esempio di risposta da una funzione Lambda:
{ "isBase64Encoded":
false
, "statusCode":200
, "statusDescription": "200 OK
", "headers": { "Set-cookie": "cookies
", "Content-Type": "application/json" }, "body": "Hello from Lambda (optional)" }
Intestazioni con più valori
VPCLattice supporta le richieste di un client o le risposte di una funzione Lambda che contengono intestazioni con più valori o contengono la stessa intestazione più volte. VPC Lattice passa tutti i valori ai bersagli.
Nell'esempio seguente, ci sono due intestazioni denominate header1 con valori diversi.
header1 = value1
header1 = value2
Con una struttura di eventi V2, VPC Lattice invia i valori in una lista. Per esempio:
"header1": ["value1", "value2"]
Con una struttura di eventi V1, VPC Lattice combina i valori in un'unica stringa. Per esempio:
"header1": "value1, value2"
Parametri della stringa di interrogazione multivalore
VPCLattice supporta parametri di interrogazione con più valori per la stessa chiave.
Nell'esempio seguente, ci sono due parametri denominati QS1 con valori diversi.
http://www.example.com?&QS1=value1&QS1=value2
Con una struttura di eventi V2, VPC Lattice invia i valori in una lista. Per esempio:
"QS1": ["value1", "value2"]
Con una struttura di eventi V1, VPC Lattice utilizza l'ultimo valore passato. Per esempio:
"QS1": "value2"
Annullamento della registrazione della funzione Lambda
Se non hai più bisogno di inviare traffico alla funzione Lambda, puoi annullare la relativa registrazione. Dopo aver annullato la registrazione di una funzione Lambda, le richieste in corso falliscono con errori 5XX. HTTP
Per sostituire una funzione Lambda, ti consigliamo di creare un nuovo gruppo di destinazioni, registrare la nuova funzione con il nuovo gruppo e aggiornare le regole del listener per utilizzare il nuovo gruppo di destinazioni invece di quello esistente.
Per annullare la registrazione di una funzione Lambda utilizzando la console
Apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/
. -
Nel pannello di navigazione, sotto VPCLattice, scegli Target groups.
-
Scegli il nome del gruppo di destinazione per visualizzarne i dettagli.
-
Nella scheda Destinazioni, scegli Annulla registrazione.
-
Quando viene richiesta la conferma, inserisci
confirm
e scegli Annulla registrazione.
Per annullare la registrazione della funzione Lambda utilizzando il AWS CLI
Utilizza il comando deregister-targets.