設定 Amazon EventBridge 排程器 - EventBridge 排程器

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon EventBridge 排程器

您必須先完成下列步驟,才能使用 EventBridge 排程器。

註冊 AWS

如果您沒有 AWS 帳戶,請完成下列步驟來建立一個。

註冊 AWS 帳戶
  1. 開啟 https://portal.aws.amazon.com/billing/signup

  2. 請遵循線上指示進行。

    部分註冊程序需接收來電或簡訊,並在電話鍵盤輸入驗證碼。

    當您註冊 時 AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務

建立 IAM 使用者

若要建立管理員使用者,請選擇下列其中一個選項。

選擇一種管理管理員的方式 根據 您也可以
在 IAM Identity Center

(建議)

使用短期憑證存取 AWS。

這與安全性最佳實務一致。有關最佳實務的資訊,請參閱 IAM 使用者指南中的 IAM 安全最佳實務

請遵循 AWS IAM Identity Center 使用者指南入門中的說明。 透過在 AWS Command Line Interface 使用者指南中設定 AWS CLI 以使用 來設定 AWS IAM Identity Center程式設計存取。
在 IAM 中

(不建議使用)

使用長期憑證存取 AWS。 遵循《IAM 使用者指南》中為緊急存取建立 IAM 使用者的指示。 IAM 使用者指南》中的透過管理 IAM 使用者的存取金鑰來設定程式設計存取。

使用 受管政策

在上一個步驟中,您會使用登入資料設定 IAM 使用者來存取您的 AWS 資源。在大多數情況下,若要安全地使用 EventBridge 排程器,我們建議您建立單獨的使用者、群組或角色,只具有使用 EventBridge 排程器的必要許可。EventBridge 排程器支援下列常見使用案例的受管政策。

  • AmazonEventBridgeSchedulerFullAccess – 使用主控台和 API 授予 EventBridge 排程器的完整存取權。

  • AmazonEventBridgeSchedulerReadOnlyAccess – 授予 EventBridge 排程器的唯讀存取權。

您可以將這些受管政策連接至您的 IAM 主體,就像您在上一個步驟中連接AdministratorAccess政策一樣。如需使用身分型 IAM 政策管理 EventBridge 排程器存取權的詳細資訊,請參閱 在 EventBridge 排程器中使用身分型政策

設定執行角色

執行角色是 EventBridge 排程器擔任的 IAM 角色,以便 AWS 服務 代表您與其他 互動。您可以將許可政策連接至此角色,以授予 EventBridge 排程器調用目標的存取權。

當您使用主控台建立新的排程時,也可以建立新的執行角色。如果您使用 主控台,EventBridge 排程器會根據您選擇的目標,以 許可代表您建立角色。當 EventBridge 排程器為您建立角色時,角色的信任政策會包含條件索引鍵,以限制哪些委託人可以代表您擔任該角色。這可防止潛在的混淆代理人安全問題

下列步驟說明如何建立新的執行角色,以及如何授予 EventBridge 排程器叫用目標的存取權。本主題說明熱門範本目標的許可。如需新增其他目標許可的詳細資訊,請參閱 在 EventBridge 排程器中使用範本目標

使用 建立執行角色 AWS CLI
  1. 複製下列擔任角色 JSON 政策,並將其儲存為 Scheduler-Execution-Role.json。此信任政策允許 EventBridge 排程器代表您擔任該角色。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    重要

    若要在生產環境中設定執行角色,建議您實作額外的保護措施,以防止混淆代理人問題。如需詳細資訊和範例政策,請參閱 EventBridge 排程器中的混淆代理人預防

  2. 從 AWS Command Line Interface (AWS CLI) 輸入下列命令來建立新的角色。SchedulerExecutionRole 將 取代為您要提供此角色的名稱。

    $ aws iam create-role --role-name SchedulerExecutionRole --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"
                    }
                ]
            }
        }
    }
  3. 若要建立新的政策以允許 EventBridge 排程器叫用目標,請選擇下列其中一個常見目標。複製 JSON 許可政策並將其儲存為.json檔案。

    Amazon SQS – SendMessage

    以下允許 EventBridge 排程器呼叫您帳戶中所有 Amazon SQS 佇列sqs:SendMessage的動作。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
    Amazon SNS – Publish

    以下允許 EventBridge 排程器呼叫您帳戶中所有 Amazon SNS 主題sns:Publish的動作。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "*" } ] }
    Lambda – Invoke

    以下允許 EventBridge Scheduler 呼叫您帳戶中所有 Lambda 函數lambda:InvokeFunction的動作。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
  4. 執行下列命令來建立新的許可政策。PolicyName 將 取代為您要提供此政策的名稱。

    $ aws iam create-policy --policy-name PolicyName --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"
        }
    }
    
  5. 執行下列命令,將政策連接至您的執行角色。your-policy-arn 以您在上一個步驟中建立的政策 ARN 取代 。SchedulerExecutionRole 以執行角色的名稱取代 。

    $ aws iam attach-role-policy --policy-arn your-policy-arn --role-name SchedulerExecutionRole

    attach-role-policy 操作不會在命令列傳回回應。

設定目標

建立 EventBridge 排程器排程之前,您至少需要一個目標,才能叫用排程。您可以使用現有的 AWS 資源,或建立新的資源。下列步驟說明如何使用 建立新的標準 Amazon SQS 佇列 AWS CloudFormation。

建立新的 Amazon SQS 佇列
  1. 複製下列 JSON AWS CloudFormation 範本,並將其儲存為 SchedulerTargetSQS.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" ] } } } }
  2. 從 AWS CLI執行下列命令,從Scheduler-Target-SQS.json範本建立 AWS CloudFormation 堆疊。

    $ aws cloudformation create-stack --stack-name Scheduler-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"
    }
  3. 執行下列命令以檢視 AWS CloudFormation 堆疊的摘要資訊。此資訊包含堆疊的狀態和範本中指定的輸出。

    $ aws cloudformation describe-stacks --stack-name Scheduler-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 排程器的目標。

後續步驟?

完成設定步驟後,請使用入門指南來建立您的第一個 EventBridge 排程器排程器並叫用目標。