为啥我们不能使用 CloudFormation 中的参数将 AllowedValues 用作字符串?

Posted

技术标签:

【中文标题】为啥我们不能使用 CloudFormation 中的参数将 AllowedValues 用作字符串?【英文标题】:Why cant we use AllowedValues for key pair as String using the Parameter in CloudFormation?为什么我们不能使用 CloudFormation 中的参数将 AllowedValues 用作字符串? 【发布时间】:2021-06-28 01:32:38 【问题描述】:

最近我开始使用 YAML 学习 Cloud Formation。我的密钥对为 CFNkey、Newkey1、Newkey2Here is an image。所以我怀疑我是否尝试将类型作为字符串用于密钥对,我得到this error message。我使用的YAML代码如下:-

AWSTemplateFormatVersion: 2010-09-09
Description: Parameter using the Dynamic KeyName
Parameters: 
  MyKeyName:
    Description: Select the key Name from the below 
    Type: String
    Default: Newkey1
    AllowedValues:
     - CFNkey
     - Newkey2
Resources:
 DevEC2Instance:
  Type: AWS::EC2::Instance
  Properties:
   InstanceType: t2.micro
   ImageId: ami-04aa88aebb9fefd83
   KeyName: !Ref MyKeyName 
   SecurityGroup:
    - !Ref SSHSecurityGroup
 SSHSecurityGroup:
  Type: AWS::EC2::SecurityGroup 
  Properties: 
  GroupDescription: My Sg
  SecurityIngress:
    IpProtocol: tcp
    ToPort: 22
    FromPort: 22
    Cidr: 0.0.0.0/0
  SecurityEgress:
    IpProtocol: tcp 
    ToPort: 8080
    FromPort: 8080
    Cidr: 0.0.0.0/0

【问题讨论】:

【参考方案1】:

您的Newkey1 必须在AllowedValues 中列出:

  MyKeyName:
    Description: Select the key Name from the below 
    Type: String
    Default: Newkey1
    AllowedValues:
     - Newkey1
     - CFNkey
     - Newkey2

【讨论】:

@Deepak 没问题。如果答案有帮助,我们将不胜感激。

以上是关于为啥我们不能使用 CloudFormation 中的参数将 AllowedValues 用作字符串?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 cloudformation 模板超过 1 MB?

CloudFront 不能使用 S3 网站来源,只能使用 REST 来源 Cloudformation

CloudFormation 跨区域参考

“aws cloudformation delete-stack”不能使用 SAM CLI 使用的 StackName?

参考无服务器框架中的现有 Cloudformation 堆栈输出

如何使用 CloudFormation 将安全组添加到现有 EC2 实例