我可以将另一个文件中的文本插入到我的 cloudformation 模板中吗?

red*_*888 6 amazon-web-services aws-cloudformation

例如,我的模板中有这个:

 ApiGatewayRestApi:
      Type: AWS::ApiGateway::RestApi
      Properties:
        Name: MyApi
        Description: My AWS API Gateway config
        Body:
          # INSERT swagger.yml content here
Run Code Online (Sandbox Code Playgroud)

是否有一些 cloudformation 函数可以用来读取 swagger.yml 或将其附加到“正文:”下?所以我可以把它保存在另一个文件中,我的模板不会变得很大。

yor*_*odm 7

有一个Fn::Transform函数允许您调用不同的 Cloudformation 宏来处理您的模板。这些宏之一是AWS::Include

这是一个例子:

Resources:
  APIGateway:
    Fn::Transform:
      Name: AWS::Include
      Parameters:
        Location:
          Fn::Sub: s3://partials-bucket/${PartialsEnv}/resources/api-gateway.yaml
Run Code Online (Sandbox Code Playgroud)

这里api-gateway.yaml将有您的资源的完整定义。

您可以像使用其他内部函数一样使用此函数。唯一需要注意的是AWS::Include仅适用于 S3 中托管的文件,因此您需要单独上传部分文件。