无服务器框架:为AWS资源添加依赖项

时间:2019-10-15 15:04:45

标签: amazon-web-services amazon-cloudformation amazon-iam serverless-framework-offline

我们正在使用无服务器框架进行部署。

我们要首先创建一个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,但获得了不受支持的错误。

可能的选择是什么?

  1. 无服务器框架中是否有类似于DependsOn的东西。
  2. 可以使用嵌套堆栈来处理吗?

1 个答案:

答案 0 :(得分:0)

在CloudFormation中处理这些依赖性问题的一种方法是简单地在依赖性资源中使用完整的ARN,而不是使用对原始资源的引用(将从中自动推断出ARN)。当您指定原始资源的ARN(例如,用于S3存储桶,IAM角色)时有效,但是当资源ARN具有某些自动生成的组件(例如CloudFront发行版)时,则无效。 >

我假设但不确定,这也适用于Serverless。

相关问题