有许多文档解释了如何解决此错误。检查了许多并尝试了。但是,跟随他们并不能为我解决这个问题。
我得到的错误是
调用 PutLifecycleHook 操作时发生错误 (ValidationError):无法使用 IAM 角色 arn:aws:iam::XXXXXXXX:role/kubeautoscaling 将测试消息发布到通知目标 arn:aws:sqs:xxxxx:XXXXX:kubeeventsqueue.fifo。请检查您的目标和角色配置并尝试再次放置生命周期挂钩。
我正在使用的命令是:
aws autoscaling put-lifecycle-hook --lifecycle-hook-name terminate --auto-scaling-group-name mygroupname --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING --role-arn arn:aws:iam::XXXXXX:role/kubeautoscaling --notification-target-arn arn:aws:sqs:xxxxx:XXXXXXX:kubeeventsqueue.fifo
请注意,我已将 XXXXX 替换为上面的实际 ID。
相关角色 ( arn:aws:iam::XXXXXX:role/kubeautoscaling
) 与 autoscaling.amazonaws.com 具有信任关系。它还附加了“AutoScalingNotificationAccessRole”策略。
在测试时,我还尝试为所有 SQS 操作 (SQS:*) 添加“允许所有人”的权限。(虽然在测试后将其删除)。
我也尝试过先创建 SQS 队列然后配置--notification-target-arn
,但没有任何成功。
对此的任何帮助都会非常有帮助。