本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用事件来运行 Lambda 函数
此示例演示如何配置 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 --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