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.
Eingabe in einen API Gateway Lambda-Authorizer
Im folgenden Abschnitt wird das Format der Eingabe von API Gateway an einen Lambda-Authorizer erklärt.
TOKEN
-Eingabeformat
Für einen Lambda-Authorizer (früher bekannt als benutzerdefinierter Authorizer) dieses TOKEN
Typs müssen Sie einen benutzerdefinierten Header als Token-Quelle angeben, wenn Sie den Authorizer für Ihren konfigurieren. API Der API Client muss das erforderliche Autorisierungstoken in diesem Header der eingehenden Anfrage übergeben. Nach Erhalt der eingehenden Methodenanforderung extrahiert API Gateway das Token aus dem benutzerdefinierten Header. Anschließend wird das Token als authorizationToken
Eigenschaft des event
Objekts der Lambda-Funktion übergeben, zusätzlich zur Methode ARN als methodArn
Eigenschaft:
{ "type":"TOKEN", "authorizationToken":"
{caller-supplied-token}
", "methodArn":"arn:aws:execute-api:{regionId}
:{accountId}
:{apiId}
/{stage}
/{httpVerb}
/[{resource}
/[{child-resources}
]]" }
In diesem Beispiel gibt die type
-Eigenschaft den Genehmigertyp an, wobei es sich um einen TOKEN
Genehmiger handelt. Das
stammt aus dem Autorisierungs-Header einer Client-Anforderung und kann eine beliebige Zeichenfolge sein. Das {caller-supplied-token}
methodArn
ist die ARN der eingehenden Methodenanforderung und wird von API Gateway gemäß der Lambda-Authorizer-Konfiguration gefüllt.
REQUEST
-Eingabeformat
Bei einem Lambda-Autorisierer dieses REQUEST
Typs übergibt API Gateway Anforderungsparameter als Teil des Objekts an die Autorisierungs-Lambda-Funktion. event
Die Anforderungsparameter umfassen Header, Pfad, Parameter für Abfragezeichenfolgen, Stufenvariablen und einige der Anforderungskontextvariablen. Der API Aufrufer kann die Pfadparameter, Header und Abfragezeichenfolgenparameter festlegen. Der API Entwickler muss die Stufenvariablen während der API Bereitstellung festlegen, und API Gateway stellt den Anforderungskontext zur Laufzeit bereit.
Anmerkung
Pfadparameter können als Anfrageparameter an die Lambda-Genehmigerfunktion übergeben werden, aber sie können nicht als Identitätsquellen verwendet werden.
Das folgende Beispiel zeigt eine Eingabe für einen REQUEST
Autorisierer für eine API Methode (GET
/request
) mit einer Proxyintegration:
{ "type": "REQUEST", "methodArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", "resource": "/request", "path": "/request", "httpMethod": "GET", "headers": { "X-AMZ-Date": "20170718T062915Z", "Accept": "*/*", "HeaderAuth1": "headerValue1", "CloudFront-Viewer-Country": "US", "CloudFront-Forwarded-Proto": "https", "CloudFront-Is-Tablet-Viewer": "false", "CloudFront-Is-Mobile-Viewer": "false", "User-Agent": "..." }, "queryStringParameters": { "QueryString1": "queryValue1" }, "pathParameters": {}, "stageVariables": { "StageVar1": "stageValue1" }, "requestContext": { "path": "/request", "accountId": "123456789012", "resourceId": "05c7jb", "stage": "test", "requestId": "...", "identity": { "apiKey": "...", "sourceIp": "...", "clientCert": { "clientCertPem": "CERT_CONTENT", "subjectDN": "www.example.com", "issuerDN": "Example issuer", "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", "validity": { "notBefore": "May 28 12:30:02 2019 GMT", "notAfter": "Aug 5 09:36:04 2021 GMT" } } }, "resourcePath": "/request", "httpMethod": "GET", "apiId": "abcdef123" } }
requestContext
ist eine Zuordnung von Schlüssel-Wert-Paaren und entspricht der Variablen $ Kontext. Ihr Ergebnis ist API -abhängig.
APIGateway fügt der Map möglicherweise neue Schlüssel hinzu. Weitere Informationen über die Eingabe von Lambda-Funktionen bei der Lambda-Proxy-Integration finden Sie unter Eingabeformat einer Lambda-Funktion für die Proxy-Integration.