本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 事件來執行 Lambda 函數
此範例說明如何設定 EventBridge 規則,在 CodeArtifact 儲存庫中的套件版本發佈、修改或刪除時啟動 AWS Lambda 函數。
如需詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的教學課程:使用 EventBridge 排程 AWS Lambda 函數。 EventBridge
建立 EventBridge 規則
若要建立啟動 Lambda 函數的規則,請使用 put-rule命令搭配 --name和 --event-pattern選項。下列模式指定my_domain網域中任何儲存庫@types範圍內的 npm 套件。
aws events put-rule --name "MyCodeArtifactRepoRule" --event-pattern \ '{"source":["aws.codeartifact"],"detail-type":["CodeArtifact Package Version State Change"], "detail":{"domainName":["my_domain"],"domainOwner":["111122223333"],"packageNamespace":["types"],"packageFormat":["npm"]}}'
建立 EventBridge 規則目標
下列命令會將目標新增至規則,在事件符合規則時執行 Lambda 函數。針對 arn 參數,指定 Lambda 函數的 Amazon Resource Name (ARN)。
aws events put-targets --ruleMyCodeArtifactRepoRule--targets \ Id=1,Arn=arn:aws:lambda:us-west-2:111122223333:function:MyLambdaFunction
設定 EventBridge 許可
使用 add-permission命令來授予規則呼叫 Lambda 函數的許可。針對 --source-arn 參數,指定您在此範例中稍早建立之規則的 ARN。
aws lambda add-permission --function-nameMyLambdaFunction\\ --statement-idmy-statement-id--action 'lambda:InvokeFunction' \\ --principal events.amazonaws.com \\ --source-arn arn:aws:events:us-west-2:111122223333:rule/MyCodeArtifactRepoRule