我想对 Amazon EventBridge 调度器中的错误进行故障排除。
解决方法
监控 EventBridge 调度器指标
使用 Amazon CloudWatch 监控 EventBridge 调度器指标。例如,您可以查看指标,如 TargetErrorCount、InvocationDroppedCount 和 TargetErrorThrottledCount。
配置 DLQ
要在调度无法调用其目标时获得包含调用详细信息的有效载荷,请配置死信队列 (DLQ)。
检查 EventBridge 调度器是否具有所需的权限
验证您的 AWS Identity and Access Management (IAM) 执行角色是否允许 EventBridge 调度器代入该角色。您附加到角色的策略还必须具有调用目标的权限。
验证信任关系
要验证 EventBridge 调度器是否可以代入该角色,请完成以下步骤:
- 打开 EventBridge 控制台。
- 选择 Schedules(调度),然后选择您的调度。
- 选择 Target(目标)选项卡。
- 选择执行角色。
- 选择 Trust relationships(信任关系)。
- 验证 Principal(主体)是否设置为 scheduler.amazonaws.com。
- 验证 Action(操作)是否设置为 sts:AssumeRole。
注意: 最佳做法是使用执行角色信任策略,这有助于防止混淆代理问题。
验证目标权限
要检查 EventBridge 调度器是否可以调用目标,请确定您希望 EventBridge 调度器调用的 AWS 服务的 API 操作。然后,验证附加到您的执行角色的 IAM 策略是否包含调用该服务 API 操作的权限。
例如,要让 EventBridge 调度器调用 AWS Lambda 函数,您必须在 IAM 策略中包含 lambda:InvokeFunction 权限:
{
"Version":"2012-10-17",
"Statement": [
{
"Action": [ "lambda:InvokeFunction" ],
"Effect": "Allow",
"Resource": "*"
}
]
}
注意: 最佳做法是使用特定的 Amazon 资源名称 (ARN) 而不是通配符 (*)。