AWS CloudFormation スタックが作成した AWS Lambda 関数で Amazon EventBridge イベントルールトリガーを確認したいです。
簡単な説明
CloudFormation スタックを使用して AWS::Events::Rule および AWS::Lambda::Function リソースを作成しても、Lambda コンソールにイベントルールトリガーが表示されない場合があります。これは通常、EventBridge に Lambda 関数を呼び出すためのアクセス許可がない場合に発生します。イベントルールリソースが CloudFormation スタックの外部から削除された場合にも発生する可能性があります。
解決策
EventBridge に Lambda 関数を呼び出すためのアクセス許可が欠けている
CloudFormation スタックの AWS::Lambda::Permission リソースを使用して、ターゲット Lambda 関数のリソースベースのポリシーに lambda:InvokeFunction アクセス許可を追加します。
たとえば、次のリソースを使用して、Lambda 関数を呼び出すためのアクセス許可を EventRule リソースに付与します。
PermissionForEventsToInvokeLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !Ref LambdaFunction
Action: lambda:InvokeFunction
Principal: events.amazonaws.com
SourceArn: !GetAtt EventRule.Arn
アクセス許可を付与すると、イベントルールトリガーが Lambda コンソールに表示されます。
イベントルールリソースが CloudFormation スタックの外部から削除されている
EventBridge イベントルールが CloudFormation スタックの外部から削除されると、そのイベントルールは Lambda トリガーに表示されません。
この問題を解決するには、テンプレート内のリソースの論理 ID を変更してリソースを再作成します。
関連情報
AWS::Lambda::Permission
イベントに応答して Lambda 関数を呼び出す