

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用事件啟動 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 來源 (CLI) 建立 CloudWatch Events 規則](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>

 若要建立規則，請使用 `put-rule`命令搭配 `--name`和 `--event-pattern` 參數。事件模式會指定與每個事件內容相符的值。如果模式符合事件，則會觸發目標。例如，下列模式符合`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 Resource Name (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}}'
```