ОБНОВЛЕНИЕ: Спасибо за помощь!
Я обновил файл template.yml, добавив в него Authorizer, но все равно получаю сообщение об ошибке:
HelloWorldApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Cors: "'*'"
# Auth:
# DefaultAuthorizer: MyCognitoAuthorizer
# Authorizers:
# MyCognitoAuthorizer:
# UserPoolArn: arn:aws:cognito-idp:us-east-1:719235216593:userpool/my-user-pool-id
HelloWorldFunction:
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs10.x
Events:
HelloWorld:
Type: Api
Properties:
RestApiId: !Ref HelloWorldApi
Path: /hello
Method: get
MyCognitoAuthorizer:
Type: AWS::ApiGateway::Authorizer
Properties:
Name: MyAuthorizer
Type: COGNITO_USER_POOLS
RestApiId: !Ref HelloWorldApi
ProviderARNs:
- arn:aws:cognito-idp:us-east-1:719235216593:userpool/my-user-pool-id
Однако я Теперь при попытке создания стека получаются следующие данные:
Не удалось создать следующие ресурсы: [MyCognitoAuthorizer, HelloWorldApiDeploymentbc8438953d, HelloWorldFunctionHelloWorldPermissionProd]. , Откат запрошен пользователем.
Я не указал откат и не могу определить, что не так в моем авторизаторе?
ОРИГИНАЛ
Я построил несколько лямбд, каждая из которых имеет свой собственный шлюз Api. Я использую SAM CLI, чтобы сделать это, и каждая лямбда является собственным проектом и имеет собственный файл Template.yml, описывающий инфраструктуру.
Ниже приведен пример templay.yml:
AWSTemplateFormatVersion: '2011-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
# Avoid 'implicit API' creation via SAM by explicitly defining one
HelloWorldApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Cors: "'*'"
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs10.x
Events:
HelloWorld:
Type: Api
Properties:
RestApiId: !Ref HelloWorldApi # reference defined API
Path: /hello
Method: get
Теперь я хотел бы предоставить аутентификацию для каждой лямбды. Однако я бы хотел, чтобы все лямбды использовали один и тот же пул Cognito User . Я видел много примеров, которые создают связанный пул пользователей с лямбдой, но в этом случае я получу новый пул пользователей для каждой лямбды.
Есть ли способ, которым я могу указать в template.yml ARN существующего пула пользователей, который я создал с помощью консоли AWS?
Примечание: я не очень знаком с синтаксисом CloudFormation, поэтому желательно, чтобы это было возможно с синтаксисом шаблона CLI SAM.