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à.
Invocare la funzione Lambda URLs
Una funzione URL è un endpoint HTTP (S) dedicato per la funzione Lambda. Puoi creare e configurare una funzione URL tramite la console Lambda o Lambda. API Quando crei una funzioneURL, Lambda genera automaticamente un URL endpoint unico per te. Una volta creata una funzioneURL, il suo URL endpoint non cambia mai. URLGli endpoint della funzione hanno il seguente formato:
https://
<url-id>
.lambda-url.<region>.on.aws
Nota
URLsLe funzioni non sono supportate nei seguenti paesi Regioni AWS: Asia Pacifico (Hyderabad) (ap-south-2
), Asia Pacifico (Melbourne) (ap-southeast-4
), Asia Pacifico (Malaysia) (ap-southeast-5
), Canada occidentale (Calgary) (), Europa (Spagnaca-west-1
) (), Europa (Zurigoeu-south-2
) () (), Israele (Tel Aviveu-central-2
) () e Medio Oriente (il-central-1
) (). UAE me-central-1
URLsLe funzioni sono abilitate al dual stack, supportano e. IPv4 IPv6 Dopo aver configurato la funzioneURL, è possibile richiamarla tramite il suo endpoint HTTP (S) tramite un browser Web, curl, Postman o qualsiasi client. HTTP Per richiamare una funzioneURL, è necessario disporre delle autorizzazioni. lambda:InvokeFunctionUrl
Per ulteriori informazioni, consulta Controllo accessi.
Nozioni di base sull'invocazione delle funzioni URL
Se la funzione URL utilizza il tipo di AWS_IAM
autenticazione, è necessario firmare ogni HTTP richiesta utilizzando AWS Signature Version 4 (SigV4). Strumenti come awscurl
Se non utilizzi uno strumento per firmare HTTP le richieste alla tua funzioneURL, devi firmare manualmente ogni richiesta utilizzando SigV4. Quando la funzione URL riceve una richiesta, Lambda calcola anche la firma SigV4. Lambda elabora la richiesta solo se le firme corrispondono. Per istruzioni su come firmare manualmente le richieste con SigV4, consulta Firmare le AWS richieste con Signature Version 4 nella Guida.Riferimenti generali di Amazon Web Services
Se la funzione URL utilizza il tipo di NONE
autenticazione, non è necessario firmare le richieste utilizzando SigV4. Puoi richiamare la tua funzione utilizzando un browser web, curl, Postman o qualsiasi altro client. HTTP
Per verificare semplici richieste GET
alla funzione, usa un browser Web. Ad esempio, se la tua funzione URL è https://abcdefg.lambda-url.us-east-1.on.aws
e utilizza un parametro stringamessage
, la tua richiesta URL potrebbe essere simile alla seguente:
https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld
Per testare altre HTTP richieste, come una POST
richiesta, puoi usare uno strumento come curl. Ad esempio, se desideri includere alcuni JSON dati in una POST
richiesta alla tua funzioneURL, puoi usare il seguente comando curl:
curl -v 'https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld' \ -H 'content-type: application/json' \ -d '{ "example": "test" }'
Payload di richieste e risposte
Quando un client chiama la tua funzioneURL, Lambda mappa la richiesta a un oggetto evento prima di passarla alla tua funzione. La risposta della funzione viene quindi mappata su una HTTP risposta che Lambda invia al client tramite la funzione. URL
I formati degli eventi di richiesta e risposta seguono lo stesso schema del formato di payload di Amazon API Gateway versione 2.0.
Formato del payload di richiesta
Un payload di richiesta ha la seguente struttura:
{ "version": "2.0", "routeKey": "$default", "rawPath": "/my/path", "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", "cookies": [ "cookie1", "cookie2" ], "headers": { "header1": "value1", "header2": "value1,value2" }, "queryStringParameters": { "parameter1": "value1,value2", "parameter2": "value" }, "requestContext": { "accountId": "123456789012", "apiId": "<urlid>", "authentication": null, "authorizer": { "iam": { "accessKey": "AKIA...", "accountId": "111122223333", "callerId": "AIDA...", "cognitoIdentity": null, "principalOrgId": null, "userArn": "arn:aws:iam::111122223333:user/example-user", "userId": "AIDA..." } }, "domainName": "<url-id>.lambda-url.us-west-2.on.aws", "domainPrefix": "<url-id>", "http": { "method": "POST", "path": "/my/path", "protocol": "HTTP/1.1", "sourceIp": "123.123.123.123", "userAgent": "agent" }, "requestId": "id", "routeKey": "$default", "stage": "$default", "time": "12/Mar/2020:19:03:58 +0000", "timeEpoch": 1583348638390 }, "body": "Hello from client!", "pathParameters": null, "isBase64Encoded": false, "stageVariables": null }
Parametro | Descrizione | Esempio |
---|---|---|
|
Il tipo di formato del payload per questo evento. La funzione Lambda URLs attualmente supporta il formato payload versione 2.0. |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta su |
|
|
Percorso della richiesta. Ad esempio, se la richiesta URL è |
|
|
La stringa raw contenente i parametri della stringa di query della richiesta. I caratteri supportati includono |
|
|
Un array contenente tutti i cookie inviati come parte della richiesta. |
|
|
L'elenco delle intestazioni della richiesta, presentate come coppie chiave-valore. |
|
|
I parametri di query per la richiesta. Ad esempio, se la richiesta URL è |
|
|
Un oggetto che contiene informazioni aggiuntive sulla richiesta, ad esempio l' |
|
|
L' Account AWS ID del proprietario della funzione. |
|
|
L'ID della funzioneURL. |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta su |
|
|
Un oggetto che contiene informazioni sull'identità del chiamante, se la funzione URL utilizza il tipo di |
|
|
La chiave di accesso dell'identità del chiamante. |
|
|
L' Account AWS ID dell'identità del chiamante. |
|
|
L'ID (ID utente) del chiamante. |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta |
|
|
L'ID dell'organizzazione principale associato all'identità del chiamante. |
|
|
L'utente Amazon Resource Name (ARN) dell'identità del chiamante. |
|
|
L'ID utente dell'identità del chiamante. |
|
|
Il nome di dominio della funzione. URL |
|
|
Il prefisso di dominio della funzione. URL |
|
|
Un oggetto che contiene dettagli sulla HTTP richiesta. |
|
|
Il HTTP metodo utilizzato in questa richiesta. I valori validi includono |
|
|
Percorso della richiesta. Ad esempio, se la richiesta URL è |
|
|
Il protocollo della richiesta. |
|
|
L'indirizzo IP di origine della TCP connessione immediata che effettua la richiesta. |
|
|
Il valore dell'intestazione della richiesta User-Agent. |
|
|
L'l'ID della richiesta di richiamo. È possibile utilizzare questo ID per tenere traccia dei registri dei richiami correlati alla funzione. |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta su |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta su |
|
|
Il timestamp della richiesta. |
|
|
Il timestamp della richiesta, in formato temporale Unix. |
|
|
Il corpo della richiesta. Se il tipo di contenuto della richiesta è binario, il corpo è con codifica base64. |
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta |
|
|
|
|
|
La funzione URLs non utilizza questo parametro. Lambda lo imposta |
|
Formato del payload di risposta
Quando la funzione restituisce una risposta, Lambda analizza la risposta e la converte in risposta. HTTP I payload di risposta della funzione hanno il formato seguente:
{ "statusCode": 201, "headers": { "Content-Type": "application/json", "My-Custom-Header": "Custom Value" }, "body": "{ \"message\": \"Hello, world!\" }", "cookies": [ "Cookie_1=Value1; Expires=21 Oct 2021 07:48 GMT", "Cookie_2=Value2; Max-Age=78000" ], "isBase64Encoded": false }
Lambda deduce il formato di risposta per l'utente. Se la funzione restituisce un valore valido JSON e non restituisce un valorestatusCode
, Lambda presuppone quanto segue:
-
statusCode
è200
. -
content-type
èapplication/json
. -
body
è la risposta della funzione. -
isBase64Encoded
èfalse
.
Gli esempi seguenti mostrano come l'output della funzione Lambda viene mappato al payload di risposta e come il payload di risposta viene mappato alla risposta finale. HTTP Quando il client richiama la tua funzioneURL, vede la risposta. HTTP
Esempio di output per una risposta in formato stringa
Risultato della funzione Lambda | Output di risposta interpretata | HTTPrisposta (cosa vede il cliente) |
---|---|---|
|
|
|
Esempio di output per una JSON risposta
Risultato della funzione Lambda | Output di risposta interpretata | HTTPrisposta (cosa vede il cliente) |
---|---|---|
|
|
|
Esempio di output per una risposta personalizzata
Risultato della funzione Lambda | Output di risposta interpretata | HTTPrisposta (cosa vede il cliente) |
---|---|---|
|
|
|
Cookie
Per restituire i cookie della funzione, non aggiungere manualmente intestazioni set-cookie
. Al contrario, includi i cookie nell'oggetto payload di risposta. Lambda lo interpreta automaticamente e li aggiunge come set-cookie
intestazioni nella HTTP risposta, come nell'esempio seguente.
Risultato della funzione Lambda | HTTPrisposta (ciò che vede il cliente) |
---|---|
|
|