Amazon web services 获取错误“;一个或多个Fn::子内在函数don';t指定预期参数";在CloudFormation中尝试使用UserData中的变量时
我在尝试使用时遇到此错误!在CloudFormation中的UserData中包含变量的Sub: 模板错误:一个或多个Fn::子内在函数未指定预期参数。指定一个字符串作为第一个参数,并指定一个可选的第二个参数,以指定要在字符串中替换的值的映射 为什么会出现这个错误 这是我的代码:Amazon web services 获取错误“;一个或多个Fn::子内在函数don';t指定预期参数";在CloudFormation中尝试使用UserData中的变量时,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我在尝试使用时遇到此错误!在CloudFormation中的UserData中包含变量的Sub: 模板错误:一个或多个Fn::子内在函数未指定预期参数。指定一个字符串作为第一个参数,并指定一个可选的第二个参数,以指定要在字符串中替换的值的映射 为什么会出现这个错误 这是我的代码: LinuxEC2Instance: Type: AWS::EC2::Instance Properties: UserData: Fn::Base64: !Sub - arn_id: !If [
LinuxEC2Instance:
Type: AWS::EC2::Instance
Properties:
UserData:
Fn::Base64: !Sub
- arn_id: !If [TestEnvironment, 'id1', 'id2']
- key: !If [TestEnvironment, 'key1', 'key2']
- |
ARN_ID=${arn_id}
KEY=${key}
echo $ARN_ID
echo $KEY
要设置的第一个参数必须是字符串。因此,您应该更改UserData
中的顺序。例如:
Fn::Base64:
!Sub
- |
#!/bin/bash -xe
ARN_ID=${arn_id}
KEY=${key}
echo $ARN_ID
echo $KEY
- arn_id: !If [TestEnvironment, 'id1', 'id2']
key: !If [TestEnvironment, 'key1', 'key2']
嗨,马辛,我已经试过了,信息保持不变…@Benny哦,是的。我更新了答案。第二个参数应该是一个对象。嘿,Marcin,这不会执行任何操作。。。。至少我看不到任何东西被执行。。。知道为什么吗?@Benny通常你会把
#/bin/bash
开始时。我更新了答案