使用 Autoscale 在 CloudFormation 中引导

Pap*_*cel 3 amazon-web-services autoscaling amazon-cloudformation

我的 CloudFormation 模板创建了一个自动缩放组并使用实用程序脚本 /opt/aws/bin/cfn-init 对其进行引导。当我从模板中删除引导程序部分时,自动缩放创建没有任何问题,但我添加它 CloudFormation 堆栈失败并在 /var/log/cloud-init.log 中添加行:

Error: AutoScalingGroupName does not specify any metadata
Run Code Online (Sandbox Code Playgroud)

上面的行紧跟在以下命令之后:

/opt/aws/bin/cfn-init --verbose --configsets orderedConfig --region us-east-1 --stack AS15 --resource AutoScalingGroupName --access-key XXXXXXXXXXXXX --secret-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

深入挖掘一点,在 cfn-init 中,我在退出点添加了以下几行:

from pprint import pprint
pprint(vars(detail))
Run Code Online (Sandbox Code Playgroud)

在运行之前的 cfn-init 命令时,我得到以下跟踪:

{'_description': None,
 '_lastUpdated': datetime.datetime(2012, 7, 12, 14, 52, 42),
 '_logicalResourceId': u'AutoScalingGroupName',
 '_metadata': None,
 '_physicalResourceId': u'AS15-AutoScalingGroupName-HNPOXXXXXXXX',
 '_resourceStatus': u'CREATE_COMPLETE',
 '_resourceStatusReason': None,
 '_resourceType': u'AWS::AutoScaling::AutoScalingGroup',
 '_stackId': u'arn:aws:cloudformation:us-east-1:XXXXXXXXXXXXX:stack/AS15/XXXXXXXX-cc30-11e1-XXXXXX-XXXXXXXXXX',
 '_stackName': u'AS15'}
Run Code Online (Sandbox Code Playgroud)

如您所见,元数据字段为空,这就是它无法创建堆栈的原因。与 autoscale 一起使用时, cfn-init 是否有任何已知的副作用?

Pap*_*cel 6

我刚刚想通了!cfn-init 脚本的参数 --resource 必须设置为启动配置名称,而不是 AutoScale 组名称。希望可以帮助某人:)