簡體   English   中英

AWS CloudFormation,在標簽中引用參數

[英]AWS CloudFormation, refer parameters in tags

我正在嘗試將一組標簽應用於 SNS 主題,其中一個標簽引用一個參數。 下面給出的是我擁有的模板的摘錄(我減少了標簽以突出我的問題)

AWSTemplateFormatVersion: 2010-09-09
Description: Deploys resources 

Parameters:
  MyParameter:
    Type: String
    Default: "testEnvironment"

Mappings:
  Mp1:
    Mp1-1:
      tags:
        - Key: key1
          Value: !Ref MyParameter

Resources:
  snsTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: snsTopic
      TopicName: snsTopic
      Tags: !FindInMap [Mp1, Mp1-1, tags]

現在,當我在 CloudFormation 上運行它時,出現以下錯誤:

Every entry in list for property Tags must be a map of String

有人知道如何解決這個問題或我做錯了什么嗎?

您不能以這種方式定義映射。 文檔清楚地說:

不能在 Mappings 部分中包含參數、偽參數或內部函數。

所以你的映射應該是

Mappings:

  Mp1:
    Mp1-1:
      tags:
        - Key: key1
          Value: MyValue # <-- No !Ref here, just fixed string

如果您想要!Ref MyParameter,那么您應該將它放在AWS::SNS::Topic資源中。

Resources:
  snsTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: snsTopic
      TopicName: snsTopic
      Tags: 
        - Key: key1
          Value: !Ref MyParameter   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM