使用AWS SDK for PHP创建EventBridge调度器遇ARN格式错误求助
解决EventBridge调度器创建时的ARN格式错误
问题原因
错误提示Parameter is not valid. Reason: Provided Arn is not in correct format.明确指向代码中Target字段里的Arn或RoleArn不符合AWS标准格式,大概率是你复制的是资源名称而非完整ARN,或是复制的ARN存在拼写错误。
解决方案
- 复制完整ARN而非资源名称
- 登录AWS控制台,进入EventBridge的API Destination页面,找到目标API Destination,复制完整的ARN(不是页面显示的资源名称)。
- 进入IAM角色页面,找到对应的执行角色,同样复制完整的角色ARN。
- 验证ARN格式合规性
正确的AWS ARN格式示例:- API Destination ARN:
arn:aws:scheduler:区域ID:账号ID:api-destination/API目标名称 - IAM角色ARN:
arn:aws:iam::账号ID:role/角色名称
- API Destination ARN:
- 替换代码中的ARN
将代码中占位的ARN替换为实际复制的完整ARN,修正后的代码示例如下:$result = $AwsSchedulerClient->createSchedule([ 'ClientToken' => 'test_1', 'Description' => 'test scheduler', 'FlexibleTimeWindow' => [ 'Mode' => 'OFF', ], 'Name' => 'test_scheduler', 'ScheduleExpression' => 'at(2023-04-05T08:00:00)', 'State' => 'ENABLED', 'Target' => [ 'Arn' => 'arn:aws:scheduler:us-east-1:123456789012:api-destination/my-test-api-dest', 'RoleArn' => 'arn:aws:iam::123456789012:role/my-eventbridge-scheduler-role', ], ]);
额外检查
- 确保ARN中的区域与SDK客户端配置的区域一致
- 格式问题解决后若仍报错,可检查角色是否拥有
events:InvokeApiDestination等必要权限
内容的提问来源于stack exchange,提问作者Hussain
相关产品推荐
相关产品推荐

