【发布时间】:2021-05-28 00:36:44
【问题描述】:
我有以下 serverless.yml 文件:
provider:
name: aws
stackTags:
Team: Chat
runtime: go1.x
stage: ${opt:stage, 'dev'}
region: ap-southeast-1
timeout: 200
environment: ${file(env.yml)}
iamRoleStatements:
- ${file(models/chat.yml):cognitoStatement}
- ${file(models/chat.yml):authStatement}
- ${file(models/chat.yml):sesStatement}
iamRoleStatements的定义如下:
cognitoStatement:
Effect: "Allow"
Action:
- "cognito-idp:ListUsers"
Resource:
- "${file(env.${self:provider.stage}.yml):COMPANY_COGNITO_RESOURCE_ARNS}"
- "${file(env.${self:provider.stage}.yml):USER_COGNITO_RESOURCE_ARNS}"
authStatement:
Effect: "Allow"
Action:
- "lambda:InvokeFunction"
Resource:
- !Sub "arn:aws:lambda:ap-southeast-1:${AWS::AccountId}:function:mhub-cognito-auth-api-${self:provider.stage}-cogtoken"
sesStatement:
Effect: Allow
Action:
- ses:SendEmail
- ses:SendRawEmail
Resource: "arn:aws:ses:*:*:*"
我可以成功地将代码部署到staging,但部署到prod 失败。
部署到prod 是由其他人在另一台计算机上完成的。
prod 与stage, but I never had an issue deploying to produntilauthStatementandsesStatement 有不同的Account ID。
如有必要,我很乐意提供更多详细信息。谢谢。
【问题讨论】:
标签: amazon-web-services aws-lambda serverless-framework