

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# イベントを使用してLambda 関数を実行するには
<a name="configure-service-events-lambda-function"></a>

 この例では、CodeArtifact リポジトリ内のパッケージバージョンが公開、変更または削除された際に、 AWS Lambda 関数を起動する EventBridge ルールを設定する方法について説明します。

詳細については、*Amazon EventBridge ユーザーガイド* の [チュートリアル: EventBridge を使用した AWS Lambda 関数 のスケジュール設定](https://docs.aws.amazon.com/eventbridge/latest/userguide/run-lambda-schedule.html) を参照してください。

**Topics**
+ [EventBridge ルールを作成するには](#configure-service-events-lambda-create-rule)
+ [EventBridge ルールターゲットを作成するには](#configure-service-events-lambda-create-rule-target)
+ [EventBridge アクセス許可の設定](#configure-service-events-lambda-permissions)

## EventBridge ルールを作成するには
<a name="configure-service-events-lambda-create-rule"></a>

 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 ルールターゲットを作成するには
<a name="configure-service-events-lambda-create-rule-target"></a>

 次のコマンドは、イベントがルールに一致したときに 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 アクセス許可の設定
<a name="configure-service-events-lambda-permissions"></a>

 `add-permission` コマンドを使用して、Lambda 関数を呼び出すためのルールに対するアクセス許可を付与します。`--source-arn` パラメータについては、この例で先に作成したルールの ARN を指定します。

```
aws lambda add-permission --function-name {{MyLambdaFunction}} \\
  --statement-id {{my-statement-id}} --action 'lambda:InvokeFunction' \\
  --principal events.amazonaws.com \\
  --source-arn arn:aws:events:{{us-west-2}}:{{111122223333}}:rule/{{MyCodeArtifactRepoRule}}
```