amazon-web-services - 有没有办法让 CloudFormer (beta) 在启动配置中保留用户数据
问题描述
我试用了 CloudFormer(beta),这是一种从选定的现有基础设施生成 CloudFormation 模板的 AWS 工具。CloudFormer 作为一个单独的堆栈运行,它创建一个实例。您使用 CloudFormer 模板创建堆栈,然后使用创建堆栈时填写的凭据登录该实例。如https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html中所述。
这一切都很顺利。我进入 CloudFormer 向导,能够轻松单击并选择我的所有资源,其中包括一个 VPC,以及一个运行连接到 S3、RDS 和 DynamoDB 的简单 Web 应用程序的自动缩放组。该练习基于 Ryan Lewis 的 AWS 优秀 Pluralsight 课程(源代码)。当我运行生成的 CloudFormation 模板时,我只遇到了一个问题:我必须将单次出现更改AWS::RDS::DBSecurityGroup
为AWS::EC2::SecurityGroup
,因为前者似乎不被接受。然后我的堆栈创建成功。
但是,该应用程序没有运行。快速检查显示启动配置中缺少用户数据。因此,CloudFormer 在为启动配置创建模板时似乎只是跳过了这一点。这对我来说有点奇怪,因为用户数据使启动配置变得有用。您是否遇到过同样的问题,是否有解决方法?
为完整起见,以下是生成的 CloudFormation 模板的相关部分:
"lcpizzalauncherdyn4": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Properties": {
"AssociatePublicIpAddress": true,
"ImageId": "ami-0661a53fb3b1e117a",
"InstanceType": "t2.micro",
"KeyName": "pizza-keys",
"IamInstanceProfile": "pizza-ec2-role",
"SecurityGroups": [
{
"Ref": "sgpizzaec2sg"
}
],
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"SnapshotId": "snap-0cad60faa1e33e22b",
"VolumeSize": 8
}
}
]
}
},
在 gitHub 上查看完整文件
如果 CloudFormer 工具因为这样的一点遗漏而无法用于创建完整工作的模板,这似乎很可悲。现在我确实知道它是一个测试版,所以我试着找一个地方报告问题。您知道让 AWS 团队知道的首选方式是什么吗?
解决方案
CloudFormer自 2011 年以来一直处于测试阶段。它最近似乎没有得到太多维护,因此将来可能会被弃用。
因此,您似乎需要手动添加“用户数据”部分。
推荐阅读
- android - 如何使用里面的 ListView 滚动 NestedScrollView?
- python-3.x - 处理数据框中的不同时间格式
- c++ - 以“int typedef my_int;”形式声明的 typedef
- apache - Apache not working after Mac OS Mojave Update: This site can’t be reached. mysite.test refused to connect
- reactjs - 道具类型失败:提供给“MapView”的“字符串”类型的无效道具“region.latitude”,应为“数字”
- python - Delay function result while still being able to call the function and make result available
- excel - Custom time format excel: don't display zeros if hours or minutes are zeroes
- python - Using probability in python
- html - 405 错误:请求的 URL 不允许该方法
- python-3.x - 使用 for 循环创建字典。构建字典后如何停止 for 循环?