首页 > 解决方案 > 如何将参数传递给嵌入在 serverless.yaml 文件中的 cloudformation 模板

问题描述

我有一个 cloudformation 模板,我想将它嵌入到资源部分,但现有的 cloudformation 模板包含参数。有可能处理这个吗?

资源:资源:${file(cloudformation-resources.yaml)}

我正在尝试使用模板创建 IAM 角色和 Lambda 函数。模板将环境名称、安全组 ID、lambda 代码所在的存储桶名称作为参数传递。我正在使用 !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/ 获取模板内的日志组。

但我最终得到一个错误“变量 AWS::Region 的变量引用语法无效。您只能引用环境变量、选项和文件。您可以查看我们的文档以获取更多信息。”

如何使用 serverless.yaml 文件处理这个问题。

这是我正在尝试的 serverless.yaml

    service: sample
    frameworkVersion: ">=1.0.0 <2.0.0"
    plugins:
      - serverless-pseudo-parameters
  
  provider:
    name: aws
    stackName: "${opt:stackName,env:StackName}"
  parameters:
    SecurityGroupId: "${opt:SecurityGroupId,env:SecurityGroupId}"
    Subnets: "${opt:Subnets,env:Subnets}"
    environment: "${opt:environment,env:environment}"
    LambdacodeBucketName: "${opt:LambdacodeBucketName,env:LambdacodeBucketName}"
  resources:
  - ${file(test/template.yaml)}

提前致谢

标签: amazon-web-servicesamazon-cloudformationserverless-framework

解决方案


推荐阅读