本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
此示例向您展示如何配置 EventBridge 规则,该规则在发布、修改或删除 CodeArtifact 存储库中的软件包版本时启动 AWS Lambda 函数。
有关更多信息,请参阅 Amazon EventBridge 用户指南 EventBridge中的教程:使用调度 AWS Lambda 函数。
创建 EventBridge 规则
要创建启动 Lambda 函数的规则,请使用带有 --name
和 --event-pattern
选项的 put-rule
命令。以下模式在 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 资源名称 (ARN)。
aws events put-targets --rule
MyCodeArtifactRepoRule
--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-name
MyLambdaFunction
\\ --statement-idmy-statement-id
--action 'lambda:InvokeFunction' \\ --principal events.amazonaws.com \\ --source-arn arn:aws:events:us-west-2
:111122223333
:rule/MyCodeArtifactRepoRule