Я хотел бы добавить авторизатор когнитивных функций в свою лямбда-функцию, но для этого мне нужен arn cognito, который создается в формировании стека coud (CognitoUserPool в моем разделе ресурсов). Я использую бессерверный фреймворк.
часть файла serverless.yml
graphql:
handler: src/lambda-functions/graphql/index.handler
timeout: 30
memorySize: 2048
events:
- http:
path: graphql
method: any
private: true
cors: true
authorizer:
arn:
Fn::Join:
- ''
- - 'arn:aws:cognito-idp:'
- ${self:provider.region}
- ':'
- Ref: AWS::AccountId
- ':userpool/'
- Ref: CognitoUserPool
Я получаю сообщение об ошибке при развертывании приложения:
TypeError: functionArn.split is not a function
Во время отладки я обнаружил, что функция, в которую должен быть передан вывод из Fn :: join, является object:
{"Fn::Join":["",["arn:aws:cognito-idp:","eu-west-1",":",{"Ref":"AWS::AccountId"},":userpool/",{"Ref":"CognitoUserPool"}]]}
И в функцию уже должно быть передано разрешение arn, например:
arn:aws:cognito-idp:eu-west-1:XXXXXXXXXX:userpool/eu-west-XXXXXXX
Как заставить вычислить вывод Fn :: join и передать это значение свойству arn?