Java API を使用して既存の AWS Lambda 関数に新しいトリガーを追加するにはどうすればよいですか?
CloudWatch Events - Schedule
トリガーを追加したいと思います。
を使う必要がありそうAmazonCloudWatchEventsClient
です。クライアントの資格情報を設定するにはどうすればよいですか?
どんな例でも大歓迎です。
ありがとう。
Java API を使用して既存の AWS Lambda 関数に新しいトリガーを追加するにはどうすればよいですか?
CloudWatch Events - Schedule
トリガーを追加したいと思います。
を使う必要がありそうAmazonCloudWatchEventsClient
です。クライアントの資格情報を設定するにはどうすればよいですか?
どんな例でも大歓迎です。
ありがとう。
aws sdk を介してイベント ソースを追加することができます。私は同じ問題に直面しました。Java を使用した解決策として、以下のコードを参照してください。
AddPermissionRequest addPermissionRequest = new AddPermissionRequest();
addPermissionRequest.setStatementId("12345ff"); //any unique string would go
addPermissionRequest.withSourceArn(ruleArn); //CloudWatch rule's arn
addPermissionRequest.setAction("lambda:InvokeFunction");
addPermissionRequest.setPrincipal("events.amazonaws.com");
addPermissionRequest.setFunctionName("name of your lambda function");
AWSLambdaAsyncClient lambdaClient = new AWSLambdaAsyncClient();
lambdaClient.withRegion(Regions.US_EAST_1); //region of your lambda's location
lambdaClient.addPermission(addPermissionRequest);
Kotlin で必要だったので、前の回答に欠けていたのは依存関係でした。
compile 'com.amazonaws:aws-java-sdk-lambda:1.11.520'
コード:
val addPermissionRequest = AddPermissionRequest()
addPermissionRequest.statementId = "12345ff" //any unique string would go
addPermissionRequest.withSourceArn(ruleArn) //CloudWatch rule's arn
addPermissionRequest.action = "lambda:InvokeFunction"
addPermissionRequest.principal = "events.amazonaws.com"
addPermissionRequest.functionName = "name of your lambda function"
val lambdaClient = AWSLambdaAsyncClient.builder().build()
lambdaClient.addPermission(addPermissionRequest)