在使用云形成模板编写启动Config时,是否仍然要使用文件?我的启动配置对于4096字符限制来说太大了。cli允许这样做,terraformer允许这样做,创建启动配置的接口也允许这样做。
发布于 2016-04-30 02:05:33
我还没有找到像在其他产品中那样指定用户数据文件的方法。不过,我的解决办法是将用户数据文件上传到s3,然后让用户数据在模板中下载并运行。下面是我的模板中适用的UserData部分。这是一个powershell示例。
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"\n",
[
"<powershell>",
"Read-S3Object -BucketName deployment -Key userdata/user-data.ps1 -File 'c:/temp/userdata.ps1' -Region us-west-2",
"Invoke-Expression 'c:/temp/userdata.ps1'",
"Remove-Item -Recurse -Force C:/temp",
"</powershell>"
]
]
}
}发布于 2018-06-07 11:51:36
假设您可以在linux/mac系统上预处理您的引导用户数据文件并通过cli调用cloudformation,您可以执行以下操作。
首先,在cloudformation模板中创建多个参数以接受输入。我称这些参数为UserData、UserData2、UserData3和UserData4。
删除当前目录中任何预先存在的“拆分”文件:
rm -f ./xa?base64对引导脚本文件进行编码:
BOOTSTRAP_BASE64_ENC=$(base64 -w0 ${GENERATED_USERDATA_FILE_PATH})将base64编码的文件内容拆分为4096字节的部分:
echo $BOOTSTRAP_BASE64_ENC | split -b 4096在调用'aws cloudformation堆栈‘时,将拆分的文件传递到上述参数中:
ParameterKey=UserData,ParameterValue=$(cat xaa) ParameterKey=UserData2,ParameterValue=$(cat xab) ParameterKey=UserData3,ParameterValue=$(cat xac) ParameterKey=UserData4,ParameterValue=$(cat xad)在Launchconfig的“Properties”部分,您可以从传入的参数中重新组装userdata文件,如下所示:
"UserData" : { "Fn::Join" : [ "", [ { "Ref" : "UserData" }, { "Ref" : "UserData2" }, { "Ref" : "UserData3" }, { "Ref" : "UserData4" }]]},https://stackoverflow.com/questions/36903677
复制相似问题