EventBridgeRuleからLambda関数を定期実行する際のyamlのサンプルを紹介します。
早速サンプルコード
早速サンプルコードです。
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をご参照ください。
PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!
SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当