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
asked a year ago551 views
2 Answers
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
EXPERT
answered a year ago
  • 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
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions