我们在部署中使用无服务器框架。
我们希望首先创建一个 IAM 角色。
此 IAM 角色将用于另一个 AWS 资源创建。
我们如何确保在另一个资源创建中使用 Lambda 角色之前先创建该角色?
这是serverless.yml文件的代码片段
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: arn:aws:iam::${self:custom.accountId}:role/lambdaRole1
Service:
- lambda.amazonaws.com
Action: sts:AssumeRole
此 lambdaRol1 需要在创建此新资源之前创建(它是另一个 IAM 角色(
我们尝试使用DependsOn,但出现错误不支持的属性。
有哪些可能的选择?
- 在无服务器框架中是否有类似于 DependsOn 的东西。
- 这可以使用嵌套堆栈来处理吗?
在 CloudFormation 中处理这些依赖关系问题的一种方法是简单地使用依赖资源中的完整 ARN,而不是使用对原始资源的引用(ARN 将从中自动推断(。当您指定原始资源的 ARN(例如,对于 S3 存储桶、IAM 角色(时,这不起作用,但当资源 ARN 具有一些自动生成的组件(例如 CloudFront 分配(时,此操作不起作用。
我假设,但不确定,这也适用于无服务器。