本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置亚马逊 EventBridge 排程器
在使用 EventBridge Scheduler 之前,必须完成以下步骤。
注册参加 AWS
注册参加 AWS 账户
要开始使用 AWS,你需要一个 AWS 账户. 有关创建的信息 AWS 账户,请参阅《AWS 账户管理 参考指南》 AWS 账户中的 “入门” 。
使用托管策略
设置 AWS 账户和管理用户后,我们建议您创建单独的用户、群组或角色,仅具有使用 EventBridge Scheduler 所需的权限。 EventBridge 对于常见用例,调度器支持以下托管策略。
-
AmazonEventBridgeSchedulerFullAccess — 使用控制台和 API 授予对 EventBridge 调度程序的完全访问权限。
-
AmazonEventBridgeSchedulerReadOnlyAccess — 授予对 EventBridge Scheduler 的只读访问权限。
您可以将这些托管策略附加到您的 IAM 委托人。有关使用基于身份的 IAM 策略管理 EventBridge 调度程序访问权限的更多信息,请参阅。在 Scheduler 中使用基于身份的策略 EventBridge
设置执行角色
执行角色是 EventBridge Scheduler 为代表您与其他 AWS 服务 人进行交互而承担的 IAM 角色。您可以将权限策略附加到此角色以授予 EventBridge 调度程序调用目标的权限。
在使用控制台创建新计划时,也可以创建新的执行角色。如果您使用控制台, EventBridge Scheduler 会根据您选择的目标代表您创建具有权限的角色。当 EventBridge Scheduler 为您创建角色时,该角色的信任策略包含条件密钥,限制哪些委托人可以代表您担任该角色。这样可以防范潜在的混淆代理安全问题。
以下步骤描述如何创建新的执行角色以及如何授予 EventBridge 调度程序调用目标的权限。本主题介绍常用模板化目标的权限。有关为其他目标添加权限的信息,请参阅 在调度器中 EventBridge 使用模板化目标。
要使用创建执行角色 AWS CLI
-
复制以下 JSON 格式的角色代入策略,并作为
Scheduler-Execution-Role.json保存到本地。此信任策略允许 EventBridge Scheduler 代表您代入该角色。重要
要在生产环境中设置执行角色,我们建议实施额外的保护措施,以防止出现混淆代理问题。有关更多信息和示例策略,请参阅 S EventBridge cheduler 中的副手防范令人困惑。
-
在 AWS Command Line Interface (AWS CLI) 中,输入以下命令以创建新角色。将
替换为您想授予此角色的名称。SchedulerExecutionRole$aws iam create-role --role-nameSchedulerExecutionRole--assume-role-policy-document file://Scheduler-Execution-Role.json成功替换后,您将看到以下输出内容:
{ "Role": { "Path": "/", "RoleName": "Scheduler-Execution-Role", "RoleId": "BR1L2DZK3K4CTL5ZF9EIL", "Arn": "arn:aws:iam::123456789012:role/SchedulerExecutionRole", "CreateDate": "2022-03-10T18:45:01+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
-
要创建允许 EventBridge Scheduler 调用目标的新策略,请选择以下常用目标之一。复制 JSON 权限策略并将其作为
.json文件保存在本地。 -
运行以下命令,新建权限策略。将
替换为您想授予此策略的名称。PolicyName$aws iam create-policy --policy-namePolicyName--policy-document file://PermissionPolicy.json如果成功,您将会看到以下输出。记下策略 ARN。您将在下一步中使用此 ARN 来将策略关联到我们的执行角色。
{ "Policy": { "PolicyName": "PolicyName", "CreateDate": "2022-03-015T19:31:18.620Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "ZXR6A36LTYANPAI7NJ5UV", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/PolicyName", "UpdateDate": "2022-03-015T19:31:18.620Z" } }
-
要将该策略附加到您的执行角色,请运行以下命令。将
替换为在上一步中创建的策略 ARN。将your-policy-arn替换为您执行角色的名称。SchedulerExecutionRole$aws iam attach-role-policy --policy-arnyour-policy-arn--role-nameSchedulerExecutionRole该
attach-role-policy操作不会在命令行上返回响应。
设置目标
在创建 EventBridge 调度器计划之前,至少需要一个目标才能调用日程安排。您可以使用现有 AWS 资源,也可以创建新资源。以下步骤显示了如何使用创建新的标准 Amazon SQS 队列。 CloudFormation
创建新的 Amazon SQS 队列
-
复制以下 JSON CloudFormation 模板并将其本地另存为
Scheduler-Target-SQS.json。{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": "MyQueue" } } }, "Outputs": { "QueueName": { "Description": "The name of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "QueueName" ] } }, "QueueURL": { "Description": "The URL of the queue", "Value": { "Ref": "MyQueue" } }, "QueueARN": { "Description": "The ARN of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "Arn" ] } } } } -
在中 AWS CLI,运行以下命令以根据
Scheduler-Target-SQS.json模板创建 CloudFormation 堆栈。$aws cloudformation create-stack --stack-nameScheduler-Target-SQS--template-body file://Scheduler-Target-SQS.json成功替换后,您将看到以下输出内容:
{ "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890" } -
运行以下命令查看 CloudFormation 堆栈的摘要信息。此信息包括堆栈的状态和模板中指定的输出。
$aws cloudformation describe-stacks --stack-nameScheduler-Target-SQS如果成功,该命令会创建 Amazon SQS 队列并返回以下输出:
{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890", "StackName": "Scheduler-Target-SQS", "CreationTime": "2022-03-17T16:21:29.442000+00:00", "RollbackConfiguration": {}, "StackStatus": "CREATE_COMPLETE", "DisableRollback": false, "NotificationARNs": [], "Outputs": [ { "OutputKey": "QueueName", "OutputValue": "MyQueue", "Description": "The name of the queue" }, { "OutputKey": "QueueARN", "OutputValue": "arn:aws:sqs:us-west-2:123456789012:MyQueue", "Description": "The ARN of the queue" }, { "OutputKey": "QueueURL", "OutputValue": "https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue", "Description": "The URL of the queue" } ], "Tags": [], "EnableTerminationProtection": false, "DriftInformation": { "StackDriftStatus": "NOT_CHECKED" } } ] }
在本指南的后面部分,您将使用的值
QueueARN将队列设置为 EventBridge Scheduler 的目标。
接下来做什么?
完成设置步骤后,使用入门指南创建您的第一个 EventBridge Scheduler 调度器并调用目标。