创建没有资源的 CloudFormation 堆栈
Create CloudFormation stack without resources
我的大部分基础设施都使用 Terraform,但同时我使用 serverless framework 来定义一些 Lambda 函数。 Serverless 在后台使用 CloudFormation,我需要访问一些 ARN 以获取 Terraform 创建的资源。
我的想法是在 Terraform 中创建一个 CloudFormation 堆栈并导出我需要的所有值,但它抱怨说它无法在没有任何资源的情况下创建堆栈。我不想在 CloudFormation 中定义任何资源,只想定义输出,所以我虽然也许有办法定义一些虚拟资源,但我找不到任何资源。
有没有办法解决这个问题?如果没有,我也乐于接受其他关于将参数从 Terraform 传递到 CloudFormation 的建议。
资源部分是必需的,但您可以创建非资源 类型的资源。
例如,只有 非资源 的极简主义模板将是:
Conditions:
Never:
!Equals [ "A", "B" ]
Resources:
NonResource:
Type: Custom::NonResource
Condition: Never
Outputs:
MyOutput:
Value: some-value
您可以为此使用 AWS::CloudFormation::WaitConditionHandle。示例:
Resources:
NullResource:
Type: AWS::CloudFormation::WaitConditionHandle
您可以使用 Terraform 创建 AWS SSM 参数并在您的无服务器框架中引用它们。这样就很容易完成工作了。
https://www.serverless.com/blog/definitive-guide-terraform-serverless/
我的大部分基础设施都使用 Terraform,但同时我使用 serverless framework 来定义一些 Lambda 函数。 Serverless 在后台使用 CloudFormation,我需要访问一些 ARN 以获取 Terraform 创建的资源。
我的想法是在 Terraform 中创建一个 CloudFormation 堆栈并导出我需要的所有值,但它抱怨说它无法在没有任何资源的情况下创建堆栈。我不想在 CloudFormation 中定义任何资源,只想定义输出,所以我虽然也许有办法定义一些虚拟资源,但我找不到任何资源。
有没有办法解决这个问题?如果没有,我也乐于接受其他关于将参数从 Terraform 传递到 CloudFormation 的建议。
资源部分是必需的,但您可以创建非资源 类型的资源。
例如,只有 非资源 的极简主义模板将是:
Conditions:
Never:
!Equals [ "A", "B" ]
Resources:
NonResource:
Type: Custom::NonResource
Condition: Never
Outputs:
MyOutput:
Value: some-value
您可以为此使用 AWS::CloudFormation::WaitConditionHandle。示例:
Resources:
NullResource:
Type: AWS::CloudFormation::WaitConditionHandle
您可以使用 Terraform 创建 AWS SSM 参数并在您的无服务器框架中引用它们。这样就很容易完成工作了。
https://www.serverless.com/blog/definitive-guide-terraform-serverless/