0

Scheint so, als ob der Autorizer keine Informationen über den Basispfad erhält. Selbst wenn Sie es im Kontext übergeben, scheint es keine Möglichkeit zu geben, es der Richtlinie hinzuzufügen.Wie erstellt man einen benutzerdefinierten Autor in AWS Lambda, der die Basispfadzuordnung von einem benutzerdefinierten Domänennamen in API Gateway berücksichtigt?

zB: domain.com/basepath1**/resource/resourceID** domain.com/basepath2**/resource/resourceID**

aktuelle politische Erklärungen:

[{ Aktion : 'execute-api: Invoke', Wirkung: 'Zulassen', Ressource: 'arn: aws: Ausführen-api: us-east-1: accountID: apiID/dev/GET **/Ressource/RessourceID **' }]

Antwort

0

API Gateway hat vor kurzem einige Verbesserungen für custome veröffentlicht r Autorisierer, einschließlich eines neuen REQUEST-Typ-Authorizers, der viel mehr Informationen von der eingehenden Anfrage erhält. Während der Basispfad nicht explizit aufgerufen wird, kann er in einem der Pfadparameter vorhanden sein.

{ 
    "type": "REQUEST", 
    "methodArn": "arn:aws:execute-api:us-east-1:123456789012:s4x3opwd6i/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": "...", 
     "X-Forwarded-Proto": "https", 
     "CloudFront-Is-SmartTV-Viewer": "false", 
     "Host": "....execute-api.us-east-1.amazonaws.com", 
     "Accept-Encoding": "gzip, deflate", 
     "X-Forwarded-Port": "443", 
     "X-Amzn-Trace-Id": "...", 
     "Via": "...cloudfront.net (CloudFront)", 
     "X-Amz-Cf-Id": "...", 
     "X-Forwarded-For": "..., ...", 
     "Postman-Token": "...", 
     "cache-control": "no-cache", 
     "CloudFront-Is-Desktop-Viewer": "true", 
     "Content-Type": "application/x-www-form-urlencoded" 
    }, 
    "queryStringParameters": { 
     "QueryString1": "queryValue1" 
    }, 
    "pathParameters": {}, 
    "stageVariables": { 
     "StageVar1": "stageValue1" 
    }, 
    "requestContext": { 
     "path": "/request", 
     "accountId": "123456789012", 
     "resourceId": "05c7jb", 
     "stage": "test", 
     "requestId": "...", 
     "identity": { 
      "apiKey": "...", 
      "sourceIp": "..." 
     }, 
     "resourcePath": "/request", 
     "httpMethod": "GET", 
     "apiId": "s4x3opwd6i" 
    } 
} 

Von documentation here

Verwandte Themen