有没有办法在SQS消息中发送配置为由EC2的Auto Scale服务启动的已生成“缩放”实例的列表?
答案 0 :(得分:1)
如果您想在扩展事件期间知道ec2实例的实例ID,可以使用SQS设置Lifecycle挂钩。
使用Amazon SQS接收通知
您可以使用Amazon SQS设置通知目标,以便在发生生命周期操作时接收通知。
使用Amazon SQS设置通知
使用Amazon SQS创建目标。有关更多信息,请参阅Amazon Simple Queue Service开发人员指南中的Amazon SQS入门。注意目标的ARN。
使用IAM用户指南中的创建角色分配对AWS服务的权限中的步骤,创建IAM角色以授予Auto Scaling访问通知目标的权限。当系统提示您选择角色类型时,请选择AWS Service Roles,AutoScaling Notification Access。请注意角色的ARN。例如,arn:aws:iam :: 123456789012:role / my-notification-role。
- 醇>
当Auto Scaling响应扩展或缩放事件时,它会将实例置于等待状态。当实例处于等待状态时,Auto Scaling会向通知目标发布消息。
示例消息:
Service: AWS Auto Scaling
Time: 2016-09-30T20:42:11.305Z
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a
LifecycleActionToken: 71514b9d-6a40-4b26-8523-05e7ee35fa40
AccountId: 123456789012
AutoScalingGroupName: my-asg
LifecycleHookName: my-hook
EC2InstanceId: i-0598c7d356eba48d7
LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING
NotificationMetadata: null
然后添加Lifecycle Hook
您可以使用put-lifecycle-hook命令创建生命周期钩子。
要在向外扩展时执行操作,请使用以下命令:
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-hook --auto-scaling-group-name my-asg --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING --notification-target-arn arn:aws:sns:us-west-2:123456789012:my-sqs --role-arn arn:aws:iam::123456789012:role/my-notification-role
http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html#adding-lifecycle-hooks
http://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-lifecycle-hook.html