Я хочу останавливать свой экземпляр EC2 каждый день с помощью CloudWatch Events. На консоли работает без проблем. Путем реверс-инжиниринга конфигурации, которую я проделал с консолью, серия эквивалентных ей команд выглядит следующим образом:
aws events put-rule \
--name stop-ec2-instance \
--schedule-expression 'cron(0 13 * * ? *)' \
--description "Stop EC2 instance everyday" \
--role-arn arn:aws:iam::012345678901:role/AWS_Events_Actions_Execution
aws events put-targets \
--rule stop-ec2-instance \
--targets "[{ \
\"Arn\": \"arn:aws:automation:ap-northeast-1:012345678901:action/EC2StopInstance/EC2StopInstance_stop-ec2-instance\", \
\"Id\": \"EC2StopInstance_stop-ec2-instance\", \
\"Input\": \"\\\"arn:aws:ec2:ap-northeast-1:012345678901:instance/i-01234567\\\"\" \
}]"
.
Однако это не работает, потому что я получаю следующую ошибку при первой команде:
A client error (ValidationException) occurred when calling the PutRule operation: Provided role 'arn:aws:iam::012345678901:role/AWS_Events_Actions_Execution' cannot be assumed by principal 'events.amazonaws.com'.
.
Как установить правило Amazon CloudWatch Events с помощью интерфейса командной строки?
--role-arn
из первой команды. Кроме того, если для выполнения задачи не требуется никакой роли, какая роль требуется для разрешений AWS на шаге 2: настройка сведений о правилах на консоли? - person Akihiro HARAI   schedule 30.01.2016