AWS SDK for PHP Eventbridge scheduler with api destination throws error as Provided Arn is not in correct format

0

Hi I am trying to create a schedule with aws eventbridge scheduler

am getting an error as

Parameter is not valid. Reason: Provided Arn is not in correct format.

Below is the code i am using

$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 name copied from aws console for api destination',
                'RoleArn' => 'role arn copied from aws console',
            ],
        ]);
Hussain
已提問 1 年前檢視次數 579 次
2 個答案
0

'Arn' => 'Arn name copied from aws console for api destination',

Would it be possible to share the relevant API ARN?
For example, an ARN that stops RDS would be the following.

arn:aws:scheduler:::aws-sdk:rds:stopDBInstance
profile picture
專家
已回答 1 年前
  • Hi, Thank you very much for the input. When I try with the input you have given it shows error message as "scheduler is not a supported service for a target." Arn looks like arn:aws:scheduler:::aws:events:ap-south-1:<id>:api-destination/<api-destination-id>

  • I checked this document and it says that the ARN will be in the form of "arn:aws:scheduler:::aws-sdk:service:apiAction".
    https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/managing-targets-universal.html

  • Thank you for the input, I checked this documentation, but i don't see api destination, but from console i can do

0

The solution is as below

`

$result = $AwsSchedulerClient->createSchedule([
                'ClientToken' => 'test_2',
                'Description' => 'test scheduler',
                'FlexibleTimeWindow' => [ 
                    'Mode' => 'OFF',
                ],
                'Name' => 'test_scheduler2', 
                'ScheduleExpression' => 'at(2023-04-12T08:00:00)', // REQUIRED
                'State' => 'ENABLED',
                'Target' => [ 
                    'Arn' => 'arn:aws:scheduler:::aws-sdk:eventbridge:createApiDestination', //need to add this service name not the arn name of api destination
                    'RoleArn' => '<role arn with relevent permission>',
                    'Input' => json_encode([
                        'ConnectionArn' => '<ConnectionArn Name>', 
                        'Description' => 'schedulerAPIs2',
                        'HttpMethod' => 'POST', 
                        'InvocationEndpoint' => 'endpoint url', 
                        'InvocationRateLimitPerSecond' => 10,
                        'Name' => 'schedulerAPIs3', 
                    ]),
                ],
            ]);

`

Hussain
已回答 1 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南