Udemy初夏のビッグセール開催中(~5/23)人気教材が1,300円~

【yaml】AWS EventBridgeからLambdaを定期実行する

AWS-EventBridgeからLambdaを定期実行するアイキャッチ

EventBridgeRuleからLambda関数を定期実行する際のyamlのサンプルを紹介します。

EventBridgeからLambda呼出しアーキテクチャ図
目次

早速サンプルコード

早速サンプルコードです。
14行目以降のEventsRulePermissionはLambdaのリソースベースのポリシーの記述です。(次の章で補足します。)要はこのLambda関数はこのEventBridgeルールから呼び出されることを許可しますといった記述です。

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  EventRule1:
    Type: AWS::Events::Rule
    Properties:
      EventBusName: default
      Name: LambdaLaunchRule
      ScheduleExpression: rate(10 minutes) # 実行したい頻度や時間を指定cron形式可能
      State: ENABLED
      Targets:
        - Id: FunctionLambdaTarget
          Arn: 【実行したい関数のArn】
          Input: '{ "key1": "value1", "key2": "value2"}' # Lambdaに渡す引数をJSONで記述
  EventsRulePermission: # Lambdaに対するリソースベースのポリシー(Lambdaに手動で設定可能)
    Type: AWS::Lambda::Permission
    Properties: 
      FunctionName: 【実行したい関数のArn】
      Action: lambda:InvokeFunction
      Principal: events.amazonaws.com
      SourceArn: !GetAtt EventRule1.Arn

ちなみに【実行したい関数のArn】の部分は同じyamlテンプレート内にLambda関数を記述している場合以下のような組み込み関数を使った書き方もできます。

!GetAtt Func1Lambda.Arn

補足:Lambdaのリソースベースのポリシーとは

LambdaのリソースベースのポリシーはマネジメントコンソールのLambda関数の項目から設定できます。ここを正しく設定しておかないと、EventBridgeからLambda関数の実行に失敗してしまいます。
対象のLambda関数→設定→アクセス権限から設定できます。yamlの記述は上のサンプルコードの14行目以降EventsRulePermissionをご参照ください。

Lambdaリソースベースのポリシー説明

PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!

SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ

ランキング

ランキングに参加しています。クリックして応援いただけると嬉しいです。
にほんブログ村 IT技術ブログ クラウドコンピューティングへ
にほんブログ村
AWSランキング
AWSランキング

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次