

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用事件开始 CodePipeline 执行
<a name="configure-service-events-codepipeline"></a>

 此示例演示如何配置 Amazon EventBridge 规则，以便在发布、修改或删除 CodeArtifact 存储库中的软件包版本时开始 AWS CodePipeline 执行。

**Topics**
+ [配置 EventBridge 权限](#configure-service-events-codepipeline-permissions)
+ [创建 EventBridge 规则](#configure-service-events-codepipeline-create-rule)
+ [创建 EventBridge 规则目标](#configure-service-events-codepipeline-create-rule-target)

## 配置 EventBridge 权限
<a name="configure-service-events-codepipeline-permissions"></a>

 您必须为 EventBridge 添加权限 CodePipeline 才能调用您创建的规则。要使用 AWS Command Line Interface (AWS CLI) 添加这些权限，请按照*AWS CodePipeline 用户指南*中[为 CodeCommit 源创建 CloudWatch 事件规则 (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-repo-changes-cli.html) 中的步骤 1 进行操作。

## 创建 EventBridge 规则
<a name="configure-service-events-codepipeline-create-rule"></a>

 要创建规则，请使用带有 `--name` 和 `--event-pattern` 参数的 `put-rule` 命令。事件模式指定与每个事件的内容相匹配的值。如果模式与事件匹配，则会触发目标。例如，以下模式匹配来自`my_domain`域中`myrepo`存储库 CodeArtifact 的事件。

```
aws events put-rule --name {{MyCodeArtifactRepoRule}} --event-pattern \
    '{"source":["aws.codeartifact"],"detail-type":["CodeArtifact Package Version State Change"],
    "detail":{"domainName":["{{my_domain}}"],"domainOwner":["{{111122223333}}"],"repositoryName":["{{myrepo}}"]}}'
```

## 创建 EventBridge 规则目标
<a name="configure-service-events-codepipeline-create-rule-target"></a>

 以下命令将目标添加到规则中，这样当事件与规则匹配时，就会触发 CodePipeline 执行。对于 `RoleArn` 参数，请指定之前在本主题中创建的角色的 Amazon 资源名称 (ARN)。

```
aws events put-targets --rule {{MyCodeArtifactRepoRule}} --targets \
  'Id=1,Arn=arn:aws:codepipeline:{{us-west-2}}:{{111122223333}}:{{pipeline-name}},
  RoleArn=arn:aws:iam::{{123456789012}}:role/{{MyRole}}'
```