Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Lambda-Funktion aufrufen URLs
Eine Funktion URL ist ein dedizierter HTTP (S) -Endpunkt für Ihre Lambda-Funktion. Sie können eine Funktion URL über die Lambda-Konsole oder das API Lambda erstellen und konfigurieren. Wenn Sie eine Funktion erstellenURL, generiert Lambda automatisch einen eindeutigen URL Endpunkt für Sie. Sobald Sie eine Funktion erstellt habenURL, ändert sich ihr URL Endpunkt nie. URLFunktionsendpunkte haben das folgende Format:
https://
<url-id>
.lambda-url.<region>.on.aws
Anmerkung
Funktionen URLs werden in den folgenden Ländern nicht unterstützt AWS-Regionen: Asien-Pazifik (Hyderabad) (ap-south-2
), Asien-Pazifik (Melbourneap-southeast-4
) (), Asien-Pazifik (Malaysiaap-southeast-5
) (), Kanada West (Calgary) (ca-west-1
), Europa (Spanien) (eu-south-2
), Europa (Zürich) (eu-central-2
), Israel (Tel Aviv) (il-central-1
) und Naher Osten (UAE) (). me-central-1
Function URLs ist Dual-Stack-fähig und unterstützt und. IPv4 IPv6 Nachdem Sie Ihre Funktion konfiguriert habenURL, können Sie Ihre Funktion über ihren HTTP (S) -Endpunkt über einen Webbrowser, Curl, Postman oder einen beliebigen Client aufrufen. HTTP Um eine Funktion aufzurufenURL, benötigen Sie Berechtigungen. lambda:InvokeFunctionUrl
Weitere Informationen finden Sie unter Zugriffskontrolle.
Grundlagen des URL Funktionsaufrufs
Wenn Ihre Funktion den URL AWS_IAM
Authentifizierungstyp verwendet, müssen Sie jede HTTP Anfrage mit AWS Signature Version 4 (Sigv4) signieren. Tools wie awscurl
Wenn Sie kein Tool verwenden, um HTTP Anfragen an Ihre Funktion zu signierenURL, müssen Sie jede Anfrage manuell mit Sigv4 signieren. Wenn Ihre Funktion eine Anfrage URL erhält, berechnet Lambda auch die SigV4-Signatur. Nur wenn die Signaturen übereinstimmen, verarbeitet Lambda die Anfrage. Anweisungen zum manuellen Signieren Ihrer Anfragen mit Sigv4 finden Sie unter Signieren von AWS Anfragen mit Signature Version 4 im Handbuch.Allgemeine Amazon Web Services-Referenz
Wenn Ihre Funktion den URL NONE
Authentifizierungstyp verwendet, müssen Sie Ihre Anfragen nicht mit Sigv4 signieren. Sie können Ihre Funktion mit einem Webbrowser, Curl, Postman oder einem beliebigen Client aufrufen. HTTP
Um einfache GET
-Anfragen an Ihre Funktion zu testen, verwenden Sie einen Webbrowser. Wenn Ihre Funktion beispielsweise URL ist https://abcdefg.lambda-url.us-east-1.on.aws
und sie einen Zeichenkettenparameter annimmtmessage
, URL könnte Ihre Anfrage wie folgt aussehen:
https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld
Um andere HTTP Anfragen zu testen, z. B. eine POST
Anfrage, können Sie ein Tool wie curl verwenden. Wenn Sie beispielsweise einige JSON Daten in eine POST
Anfrage an Ihre Funktion aufnehmen möchtenURL, können Sie den folgenden curl-Befehl verwenden:
curl -v 'https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld' \ -H 'content-type: application/json' \ -d '{ "example": "test" }'
Anfordern und Beantworten von Nutzlasten
Wenn ein Client Ihre Funktion aufruftURL, ordnet Lambda die Anfrage einem Ereignisobjekt zu, bevor sie an Ihre Funktion übergeben wird. Die Antwort Ihrer Funktion wird dann einer HTTP Antwort zugeordnet, die Lambda über die Funktion an den Client zurücksendet. URL
Die Anforderungs- und Antwortereignisformate folgen demselben Schema wie das Amazon API Gateway-Payload-Format Version 2.0.
Anforderungsnutzlastformat
Eine Anforderungsnutzlast hat die folgende Struktur:
{ "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 }
Parameter | Beschreibung | Beispiel |
---|---|---|
|
Die Nutzlastformatversion für dieses Ereignis. Die Lambda-Funktion unterstützt URLs derzeit das Payload-Format Version 2.0. |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
Der Anforderungspfad. Wenn die Anfrage beispielsweise URL lautet |
|
|
Die Rohzeichenfolge, die die Abfragezeichenfolge-Parameter der Anforderung enthält. Zu den unterstützten Zeichen gehören |
|
|
Ein Array, das alle Cookies enthält, die im Rahmen der Anforderung gesendet wurden. |
|
|
Die Liste der Anforderungs-Header, die als Schlüssel-Wert-Paare dargestellt werden. |
|
|
Die Abfrageparameter für die Anforderung. Wenn die Anfrage beispielsweise URL lautet |
|
|
Ein Objekt, das zusätzliche Informationen über die Anfrage enthält, z. B. die |
|
|
Die AWS-Konto ID des Funktionsbesitzers. |
|
|
Die ID der FunktionURL. |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
Ein Objekt, das Informationen über die Identität des Anrufers enthält, wenn die Funktion den URL Authentifizierungstyp verwendet |
|
|
Der Zugriffsschlüssel der Anruferidentität. |
|
|
Die AWS-Konto ID der Anruferidentität. |
|
|
Die ID (Benutzer-ID) des Aufrufers. |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
Die Prinzipal-Organisations-ID, die mit der Anruferidentität verknüpft ist. |
|
|
Der Amazon Resource Name (ARN) des Benutzers der Anruferidentität. |
|
|
Die Benutzer-ID des Anrufers. |
|
|
Der Domainname der FunktionURL. |
|
|
Das Domänenpräfix der FunktionURL. |
|
|
Ein Objekt, das Details zur HTTP Anfrage enthält. |
|
|
Die in dieser Anfrage verwendete HTTP Methode. Gültige Werte sind unter anderem |
|
|
Der Anforderungspfad. Wenn die Anfrage beispielsweise URL lautet |
|
|
Das Protokoll der Anforderung. |
|
|
Die Quell-IP-Adresse der unmittelbaren TCP Verbindung, die die Anfrage stellt. |
|
|
Der Headerwert der Benutzer-Agent-Anforderung. |
|
|
Die ID der aktuellen Aufrufanforderung. Sie können diese ID verwenden, um Aufrufprotokolle zu verfolgen, die sich auf Ihre Funktion beziehen. |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
Der Zeitstempel der Anfrage. |
|
|
Die Uhrzeit der Anfrage in Unix-Epochen-Zeit. |
|
|
Der Text der Anforderung. Wenn der Inhaltstyp der Anforderung binär ist, ist der Text base64-kodiert. |
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
|
|
|
|
Die Funktion verwendet diesen Parameter URLs nicht. Lambda setzt dies auf |
|
Antwortnutzlastformat
Wenn Ihre Funktion eine Antwort zurückgibt, analysiert Lambda die Antwort und wandelt sie in eine HTTP Antwort um. Funktionsantwortnutzlasten haben das folgende Format:
{ "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 leitet das Antwortformat für Sie ab. Wenn Ihre Funktion valid zurückgibt JSON und kein a zurückgibtstatusCode
, geht Lambda von Folgendem aus:
-
statusCode
ist200
. -
content-type
istapplication/json
. -
body
ist die Antwort der Funktion. -
isBase64Encoded
istfalse
.
Die folgenden Beispiele zeigen, wie die Ausgabe Ihrer Lambda-Funktion der Antwortnutzlast zugeordnet wird und wie die Antwortnutzlast der endgültigen Antwort zugeordnet wird. HTTP Wenn der Client Ihre Funktion aufruftURL, sieht er die Antwort. HTTP
Beispielausgabe für eine Zeichenkettenantwort
Lambda-Funktionsausgabe | Interpretierte Antwortausgabe | HTTPAntwort (was der Kunde sieht) |
---|---|---|
|
|
|
Beispielausgabe für eine JSON Antwort
Lambda-Funktionsausgabe | Interpretierte Antwortausgabe | HTTPAntwort (was der Kunde sieht) |
---|---|---|
|
|
|
Beispielausgabe für eine benutzerdefinierte Antwort
Lambda-Funktionsausgabe | Interpretierte Antwortausgabe | HTTPAntwort (was der Kunde sieht) |
---|---|---|
|
|
|
Cookies
Um Cookies von Ihrer Funktion zurückzugeben, fügen Sie set-cookie
-Header nicht manuell hinzu. Fügen Sie stattdessen die Cookies in Ihr Antwortnutzlastobjekt ein. Lambda interpretiert dies automatisch und fügt sie als set-cookie
Header in Ihre HTTP Antwort ein, wie im folgenden Beispiel.
Lambda-Funktionsausgabe | HTTPAntwort (was der Kunde sieht) |
---|---|
|
|