我正在尝试部署一个 AWS Lambda 函数,该函数在将 AVRO 文件写入现有 S3 存储桶时触发。
我的serverless.yml
配置如下:
service: braze-lambdas
provider:
name: aws
runtime: python3.7
region: us-west-1
role: arn:aws:iam::<account_id>:role/<role_name>
stage: dev
deploymentBucket:
name: serverless-framework-dev-us-west-1
serverSideEncryption: AES256
functions:
hello:
handler: handler.hello
events:
- s3:
bucket: <company>-dev-ec2-us-west-2
existing: true
events: s3:ObjectCreated:*
rules:
- prefix: gaurav/lambdas/123/
- suffix: .avro
当我运行时serverless deploy
,我收到以下错误:
ServerlessError: An error occurred: IamRoleCustomResourcesLambdaExecution - API: iam:CreateRole User: arn:aws:sts::<account_id>:assumed-role/serverless-framework-dev/jenkins_braze_lambdas_deploy is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::<account_id>:role/braze-lambdas-dev-IamRoleCustomResourcesLambdaExec-1M5QQI6P2ZYUH.
由于 CloudFormation 的工作原理,我看到一些关于无服务器需要的提及,iam:CreateRole
但是如果我想使用,任何人都可以确认这是否是唯一的解决方案existing: true
?existing: true
除了使用在框架添加对配置的支持之前使用的旧无服务器插件之外,还有其他方法吗?
另外,里面有1M5QQI6P2ZYUH
什么arn:aws:iam::<account_id>:role/braze-lambdas-dev-IamRoleCustomResourcesLambdaExec-1M5QQI6P2ZYUH
?它是一个随机标识符吗?这是否意味着每次我尝试部署 Lambda 函数时,Serverless 都会尝试创建一个新的 IAM 角色?