Dla strumienia Kinesis utworzyłem interfejs proxy API przy użyciu bramy interfejsu AWS API. Dodałem niestandardowy autoryzator używający Pythona Lambda dla proxy. Po opublikowaniu funkcji lambda i wdrożeniu interfejsu API udało mi się przetestować interfejs API za pomocą funkcji testu bramy. Mogłem zobaczyć dzienniki w chmurze, które miały szczegółowe wydruki z niestandardowej funkcji auth lambda. Po pomyślnym uwierzytelnieniu API Brama pchnął zapis do mojego strumienia Kinesis
Jednakże gdy zgłoszę tego samego API z klientem Chrome Postman, mam 500 Internal Server Error i odpowiedzi nagłówki obejmuje X-Cache → błędu z CloudFront, x -amzn-ErrorType → AuthoriserConfigurationException
AWS API Gateway Custom Authorizer AuthorizerConfigurationException
Funkcja Lambda auth zwraca zasadę, która pozwala na wykonanie żądania dla mojego API. Dokument Polityka zwrócony jest:
{ "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-east-1:1234567:myapiId/staging/POST/*" ], "Effect": "Allow" } ] }, "principalId": "Foo" }
Dlaczego żądanie nie z Chrome lub curl ale sam test API współpracuje z API Gateway?
To w istocie oznacza, że Autoryzatora nie wrócił politykę lub zwrócone nieprawidłową politykę lub zwrócone politykę unauthorizing żądanie API. kod autoryzatora nie powiodłby się z jakiegoś powodu na wypadek, gdyby polisa nie została zwrócona ... – Prabhat