Yaml 如何在userdata cloudformation中编写以下命令?
未从映射中的“查找”中获取值Yaml 如何在userdata cloudformation中编写以下命令?,yaml,amazon-cloudformation,Yaml,Amazon Cloudformation,未从映射中的“查找”中获取值 UserData: !Base64 'Fn::Join': - |+ - - '#!/bin/bash' - !Sub sudo -u $SPLUNK_USER $SPLUNK_BIN init shcluster-config -mgmt_uri https://$LOCALIP:8089 -replication_port 8090 -replicati
UserData: !Base64
'Fn::Join':
- |+
- - '#!/bin/bash'
- !Sub sudo -u $SPLUNK_USER $SPLUNK_BIN init shcluster-config
-mgmt_uri https://$LOCALIP:8089 -replication_port 8090 -replication_factor !FindInMap[SplunkConfig, shcluster-replication-factor, num]
-conf_deploy_fetch_url https://${SplunkSHCDeployer.PrivateIp}:8089 -shcluster_label SplunkSHC
-secret ${SplunkClusterSecret} -auth admin:${SplunkAdminPassword}
您最好使用
Sub
而不是Join
对于!FindInMap[SplunkConfig,shcluster replication factor,num]
,您需要将其指定为Sub
的参数
您可能会遇到以下情况:
UserData: !Base64
'Fn::Sub':
- |
Content-Type: multipart/mixed; boundary="==BOUNDARY=="
MIME-Version: 1.0
--==BOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"
#!/bin/bash
sudo -u $SPLUNK_USER $SPLUNK_BIN init shcluster-config -mgmt_uri https://$LOCALIP:8089 -replication_port 8090 -replication_factor ${ReplicationFactor} -conf_deploy_fetch_url https://${SplunkSHCDeployer.PrivateIp}:8089 -shcluster_label SplunkSHC -secret ${SplunkClusterSecret} -auth admin:${SplunkAdminPassword}
--==BOUNDARY==--
- ReplicationFactor: !FindInMap[SplunkConfig, shcluster-replication-factor, num]
这对我很管用
UserData: !Base64
'Fn::Join':
- |+
- - '#!/bin/bash'
- !Join
- - export $a=
- !FindInMap[SplunkConfig, shcluster-replication-factor, num]
- !Sub sudo -u $SPLUNK_USER $SPLUNK_BIN init shcluster-config
-mgmt_uri https://$LOCALIP:8089 -replication_port 8090 -replication_factor $a
-conf_deploy_fetch_url https://${SplunkSHCDeployer.PrivateIp}:8089 -shcluster_label SplunkSHC
-secret ${SplunkClusterSecret} -auth admin:${SplunkAdminPassword}