From f847fef3db7248cc4fbc24462b02f284a9ec5018 Mon Sep 17 00:00:00 2001 From: Kyosuke Ochimizu Date: Fri, 1 Dec 2023 22:37:10 +0900 Subject: [PATCH] docs(ja): periodic update for v1.31 and v1.32 (#5510) docs(ja): periodic update for v1.31 and v1.32 (changes from https://github.com/aws/copilot-cli/commit/3a73f6ea3036b7bc9d08e93d29b62dacdf5cf7ee to https://github.com/aws/copilot-cli/commit/4259e64866a37f710b5bdec238e1f2087acb7bc8) By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the Apache 2.0 License. --- site/content/blogs/release-v131.ja.md | 101 ++++++++++++++++++ site/content/blogs/release-v132.ja.md | 60 +++++++++++ site/content/docs/commands/run-local.ja.md | 5 +- site/content/docs/concepts/environments.ja.md | 9 ++ site/content/docs/concepts/services.ja.md | 5 +- site/content/docs/developing/sidecars.ja.md | 31 +++++- site/content/docs/manifest/environment.ja.md | 2 +- .../docs/manifest/lb-web-service.ja.md | 3 + site/content/docs/manifest/static-site.ja.md | 10 ++ .../docs/manifest/worker-service.ja.md | 2 +- 10 files changed, 219 insertions(+), 9 deletions(-) create mode 100644 site/content/blogs/release-v131.ja.md create mode 100644 site/content/blogs/release-v132.ja.md diff --git a/site/content/blogs/release-v131.ja.md b/site/content/blogs/release-v131.ja.md new file mode 100644 index 00000000000..4708d35ce71 --- /dev/null +++ b/site/content/blogs/release-v131.ja.md @@ -0,0 +1,101 @@ +--- +title: 'AWS Copilot v1.31: NLB 設定の拡張、タスク失敗時のログの改善、`copilot deploy` の機能拡張' +twitter_title: 'AWS Copilot v1.31' +image: '' +image_alt: '' +image_width: '1051' +image_height: '747' +--- + +# AWS Copilot v1.31: NLB 設定の拡張、タスク失敗時のログの改善、`copilot deploy` の機能拡張 + +投稿日: 2023 年 10 月 5 日 + +AWS Copilot コアチームは Copilot v1.31 のリリースを発表します。 + +私たちのパブリックな[コミュニティチャット](https://app.gitter.im/#/room/#aws_copilot-cli:gitter.im)は成長しており、オンラインでは 500 人以上、[GitHub](http://github.com/aws/copilot-cli/) では 3k 以上のスターを獲得しています 🚀。 +AWS Copilot へご支援、ご支持いただいている皆様お一人お一人に感謝をいたします。 + +Copilot v1.31 ではより柔軟で効率的な開発を支援する大きな機能強化が行われました: + +- **NLB 設定の拡張**: Copilot が管理する [Network Load Balancer (NLB)](../docs/manifest/lb-web-service.ja.md#nlb) にセキュリティグループを追加可能になりました。また、NLB の設定で UDP プロトコルが指定可能になっています。詳細は、[こちらのセクション](#nlb-enhancements)をご参照ください。 +- **タスク失敗時のログの改善**: Copilot では、デプロイ中にタスクが失敗した場合に、より詳細なログを提供するようになりました。これにより、トラブルシューティングが容易になります。 +- **`copilot deploy` の機能拡張**: 複数のワークロードを一度にデプロイできるようになりました。また、`--all` オプションにより、すべてのローカルワークロードのデプロイも可能になっています。 +- **静的サイトへ ACM 証明書のインポート**: 自己署名の ACM 証明書を、静的サイトへインポートできるようになりました。詳細は、[こちらのセクション](#importing-an-acm-certificate-for-your-static-site)をご参照ください。 + +??? note "AWS Copilot とは?" + + AWS Copilot CLI は AWS 上でプロダクションレディなコンテナ化されたアプリケーションのビルド、リリース、そして運用のためのツールです。 + 開発のスタートからステージング環境へのプッシュ、本番環境へのリリースまで、Copilot はアプリケーション開発ライフサイクル全体の管理を容易にします。 + Copilot の基礎となるのは、 AWS CloudFormation です。CloudFormation により、インフラストラクチャを 1 回の操作でコードとしてプロビジョニングできます。 + Copilot は、さまざまなタイプのマイクロサービスの作成と運用の為に、事前定義された CloudFormation テンプレートと、ユーザーフレンドリーなワークフローを提供します。 + デプロイメントスクリプトを記述する代わりに、アプリケーションの開発に集中できます。 + + より詳細な AWS Copilot の紹介については、[Overview](../docs/concepts/overview.ja.md) を確認してください。 + + + +## NLB 設定の拡張 +Copilot にて、NLB の設定で UDP プロトコルが指定可能になりました。NLB が使用するプロトコルは [nlb.port](https://aws.github.io/copilot-cli/docs/manifest/lb-web-service/#nlb-port) フィールドで指定します。 +``` +nlb: + port: 8080/udp +``` + +!!!info + NLB セキュリティグループは、NLB へのパブリックトラフィックをフィルタリングして、アプリケーションのセキュリティを強化できる AWS の新機能です。詳細については、[AWS ブログ](https://aws.amazon.com/blogs/containers/network-load-balancers-now-support-security-groups/)をご参照ください。Copilot でこの機能を利用するために、`NetworkLoadBalancer` および `TargetGroup` リソースを再作成する必要があります。Copilot v1.31 時点では、`udp` プロトコルを指定した場合のみ、`NetworkLoadBalancer` および `TargetGroup` リソースの再作成 (NLB へのセキュリティグループの紐付け) が行われます。ただし、Copilot v1.33 では、`udp` 以外のプロトコルに対してもこの変更が適用されます。すなわち、DNS エイリアスを利用していない場合、NLB のドメイン名が変更されます。DNS エイリアスを利用している場合、エイリアスはセキュリティグループが設定された新しい NLB を参照するようになります。 + + + +## `copilot deploy` の機能拡張 +`copilot deploy` で複数のワークロードを一度にデプロイできるようになりました。`--name` フラグで複数のワークロードを指定できます。新しい `--all` フラグを `--init-wkld` フラグを組み合わせて利用すると、すべてのローカルワークロードを初期してデプロイできます。また、Service 名を指定する際に "deployment order" タグを利用可能になりました。 + +たとえば、複数のワークロードを含む新しいリポジトリをクローンした場合、次のコマンドで環境とすべての Service を初期化できます。 +```console +copilot deploy --init-env --deploy-env -e dev --all --init-wkld +``` + +別の例として、他の Service が公開するトピックをサブスクライブしている Worker Service がある場合、`--all` と組み合わせて名前と順序を指定できます。 +```console +copilot deploy --all -n fe/1 -n worker/2 +``` +上記のコマンドでは、まず `fe` をデプロイした後、次に `worker` をデプロイした後に、ワークスペース内の残りの Service や Job がデプロイされます。 + + + +## タスク失敗時のログの改善 +Copilot v1.31 以前のバージョンでは、ECS タスクが停止した原因を確認する場合、AWS マネジメントコンソールから、「ECS」->「サービス」->「停止済みのタスク」->「停止理由」にページ遷移して確認する必要がありました。 + +この機能拡張により、`copilot [noun] deploy` は CloudFormation のデプロイの進捗トラッカーの中に ECS タスクの停止理由を表示するようになりました。Copilot は、Load Balanced Web Service、Backend Service、Worker Service のデプロイ中に発生した、直近の 2 つのタスクの失敗を表示します。 + +```console + - An ECS service to run and maintain your tasks in the environment cluster + Deployments + Revision Rollout Desired Running Failed Pending + PRIMARY 11 [in progress] 1 0 1 0 + ACTIVE 8 [completed] 1 1 0 0 + Latest 2 stopped tasks + TaskId CurrentStatus DesiredStatus + 6b1d6e32 DEPROVISIONING STOPPED + 9802d212 STOPPED STOPPED + + ✘ Latest 2 tasks stopped reason + - [6b1d6e32,9802d212]: Essential container in task exited + + Troubleshoot task stopped reason + 1. You can run `copilot svc logs --previous` to see the logs of the last stopped task. + 2. You can visit this article: https://repost.aws/knowledge-center/ecs-task-stopped. +``` + + + +## 静的サイトへ ACM 証明書のインポート +Copilot では、[Static Site の Manifest](../docs/manifest/static-site.ja.md) に新しいフィールド `http.certificate` が追加されました。`us-east-1` の検証済み ACM 証明書の ARN を次のように指定できます。 + +```yaml +http: + alias: example.com + certificate: "arn:aws:acm:us-east-1:1234567890:certificate/e5a6e114-b022-45b1-9339-38fbfd6db3e2" +``` + +`example.com` は、インポートする証明書のドメイン名または Subject Alternative Name (SAN) でなければならないことに注意してください。HTTPS トラフィックには、Copilot が管理する証明書の代わりに、インポートされた証明書が利用されます。 \ No newline at end of file diff --git a/site/content/blogs/release-v132.ja.md b/site/content/blogs/release-v132.ja.md new file mode 100644 index 00000000000..3446eaf61dc --- /dev/null +++ b/site/content/blogs/release-v132.ja.md @@ -0,0 +1,60 @@ +--- +title: 'AWS Copilot v1.32: `run local --proxy`、`run local --watch`、既存 ALB のインポートをサポート' +twitter_title: 'AWS Copilot v1.32' +image: '' +image_alt: '' +image_width: '1051' +image_height: '747' +--- + +# AWS Copilot v1.32: `run local --proxy`、`run local --watch`、既存 ALB のインポートをサポート + +投稿日: 2023 年 11 月 9 日 + +AWS Copilot コアチームは Copilot v1.32 のリリースを発表します。 + +私たちのパブリックな[コミュニティチャット](https://app.gitter.im/#/room/#aws_copilot-cli:gitter.im)は成長しており、オンラインでは 500 人以上、[GitHub](http://github.com/aws/copilot-cli/) では 3,100 以上のスターを獲得しています 🚀。 +AWS Copilot へご支援、ご支持いただいている皆様お一人お一人に感謝をいたします。 + +Copilot v1.32 ではより柔軟で効率的な開発を支援する大きな機能強化が行われました: + +- **`copilot run local --proxy`**: ローカルコンテナから Environment の Services や RDS インスタンスへのアウトバウンドトラフィックをプロキシします。詳細は、[こちらのセクション](#proxy-with-copilot-run-local)をご参照ください。 +- **`copilot run local --watch`**: コードに変更を加えた際に、コンテナを自動的にリビルドします。詳細は、[こちらのセクション](#watch-flag-for-copilot-run-local)をご参照ください。 +- **ALB のインポート**: Load Balanced Web Service のフロントに、既存の ALB を利用できます。詳細は、[こちらのセクション](#imported-albs)をご参照ください。 + +??? note "AWS Copilot とは?" + + AWS Copilot CLI は AWS 上でプロダクションレディなコンテナ化されたアプリケーションのビルド、リリース、そして運用のためのツールです。 + 開発のスタートからステージング環境へのプッシュ、本番環境へのリリースまで、Copilot はアプリケーション開発ライフサイクル全体の管理を容易にします。 + Copilot の基礎となるのは、 AWS CloudFormation です。CloudFormation により、インフラストラクチャを 1 回の操作でコードとしてプロビジョニングできます。 + Copilot は、さまざまなタイプのマイクロサービスの作成と運用の為に、事前定義された CloudFormation テンプレートと、ユーザーフレンドリーなワークフローを提供します。 + デプロイメントスクリプトを記述する代わりに、アプリケーションの開発に集中できます。 + + より詳細な AWS Copilot の紹介については、[Overview](../docs/concepts/overview.ja.md) を確認してください。 + + + +## `copilot run local` のプロキシ機能 +`copilot run local` の新しい `--proxy` フラグにより、ローカルコンテナが Environment にデプロイされた Service と通信できるようになりました。これにより、ローカル開発の体験が向上します。 + +たとえば、`users` と `orders` という 2 つの Service があり、どちらも [Service Connect](../docs/manifest/lb-web-service.ja.md#network-connect) を有効にしている Environment があるとします。さらに、`orders` にはデータを保存するために [RDS addon](../docs/developing/addons/workload.ja.md) がデプロイされているとします。`copilot run local --proxy --name orders` を実行することで、ローカルの `orders` コンテナは以下のコンポーネントと通信ができます: + +- `users` Service: Service Connect URL を利用します (デフォルト: `http://users:`) +- `orders` Service の RDS データベース: DB インスタンス URL (例: `app-env-orders-random-characters.us-west-2.rds.amazonaws.com:5432`) や、DB クラスター URL を利用します + + + +## `copilot run local` の watch フラグ +`--watch` フラグを利用することで、ワークスペースを監視し、コードに変更を加えた際にコンテナを自動的にリビルドできます。これにより、継続的な開発が可能になります。`--watch` フラグを `--proxy` フラグと一緒に利用することで、アプリケーションをリビルドするたびにプロキシを設定する手間を省略できるため、非常に便利です。 + + + +## ALB のインポート +[Load Balanced Web Service の Manifest](../docs/manifest/lb-web-service.ja.md) で、新しいフィールド `http.alb` がサポートされました。Copilot が Environment 内に新しい Application Load Balancer を作成し、すべての Load Balanced Web Service 間で共有するのではなく、特定の Load Balanced Web Service (LBWS) 用に既存のインターネット向け ALB を指定することもできます。LBWS Manifest に、VPC に存在する既存の ALB の ARN または ALB 名を指定します: + +```yaml +http: + alb: [name or ARN] +``` + +インポートされた ALB については、Copilot は証明書などの DNS 関連リソースを管理しません。 \ No newline at end of file diff --git a/site/content/docs/commands/run-local.ja.md b/site/content/docs/commands/run-local.ja.md index c7ba962b6d9..84550599ca8 100644 --- a/site/content/docs/commands/run-local.ja.md +++ b/site/content/docs/commands/run-local.ja.md @@ -8,7 +8,7 @@ $ copilot run local [flags] ## フラグ ``` - -a, --app string Name of the application. (default "playground") + -a, --app string Name of the application. -e, --env string Name of the environment. --env-var-override stringToString Optional. Override environment variables passed to containers. Format: [container]:KEY=VALUE. Omit container name to apply to all containers. (default []) @@ -16,6 +16,9 @@ $ copilot run local [flags] -n, --name string Name of the service or job. --port-override list Optional. Override ports exposed by service. Format: :. Example: --port-override 5000:80 binds localhost:5000 to the service's port 80. (default []) + --proxy Optional. Proxy outbound requests to your environment's VPC. + --proxy-network ipNet proxy-network (default 172.20.0.0/16) + --watch Optional. Watch changes to local files and restart containers when updated. ``` ## 実行例 diff --git a/site/content/docs/concepts/environments.ja.md b/site/content/docs/concepts/environments.ja.md index 7a7919b5ab6..a164866d6ea 100644 --- a/site/content/docs/concepts/environments.ja.md +++ b/site/content/docs/concepts/environments.ja.md @@ -48,6 +48,15 @@ Load Balanced Web Service または、Manifest に `http` フィールドを記 Manifest で [`http`](../manifest/backend-service.ja.md#http)フィールドが設定された Backend Service が Environment 内にデプロイされる場合、内部 ALB が作成されます。HTTPS のエンドポイントを利用する場合は、`copilot env init` を実行する際に、[`--import-cert-arns`](../commands/env-init.ja.md#what-are-the-flags) フラグを使用してください。そして、 プライベートサブネットのみの VPC をインポートします。内部 ALB に関する詳細は[こちら](../developing/internal-albs.ja.md)を確認してください。 +すでに VPC 内にインターネット向け ALB があり、Copilot が ALB を作成する代わりに既存の ALB を利用したい場合、Environment にデプロイする前に、Load Balanced Web Service の Manifest で既存の ALB の名前または ARN を指定してください。 + +```yaml +http: + alb: [name or ARN] +``` + +インポートされた ALB は、すべての Load Balanced Web Service 間で共有されるのではなく、既存の ALB をインポートした Service にのみ関連付けられます。 + ## Environment のカスタマイズ 既存の Environment リソースをインポートする、コマンドでフラグを使う、[Environment Manifest](../manifest/environment.ja.md) を変更するといった方法で、デフォルトの設定をすることができます。もし、現在設定可能なリソースよりも多くの種類のリソースをカスタマイズしたい場合は、お気軽にユースケースを添えた GitHub イシューを作成してください! diff --git a/site/content/docs/concepts/services.ja.md b/site/content/docs/concepts/services.ja.md index a9321a5fba4..0b244231fa4 100644 --- a/site/content/docs/concepts/services.ja.md +++ b/site/content/docs/concepts/services.ja.md @@ -39,8 +39,7 @@ Amazon CloudFront で配信され、S3 でホスティングされた静的 Web Application Load Balancer、Network Load Balancer、または両方をトラフィックの入り口として Fargate 上でタスクを実行する ECS サービスです。 安定したリクエスト量が見込まれる場合、Service から VPC 内のリソースにアクセスする必要がある場合、あるいはより高度な設定の必要がある場合に適した HTTP または TCP サービスの選択肢です。 -Application Load Balancer は Environment レベルのリソースであり、Environment 内の全ての Load Balanced Web Service で共有されることに注意しましょう。 -詳細については、[こちら](environments.ja.md#load-balancers-and-dns)を確認してください。対照的に、 Network Load Balancer は Service レベルのリソースであり、 Service 間では共有されません。 +Application Load Balancer は Environment レベルのリソースであり、Environment 内の全ての Load Balanced Web Service で共有されることに注意しましょう。v1.32.0 では、[Load Balanced Web Service の Manifest](../manifest/lb-web-service.ja.md#http-alb) で指定することにより、既存の ALB を Service レベルでインポートできます。詳細については、[こちら](environments.ja.md#load-balancers-and-dns)を確認してください。対照的に、 Network Load Balancer は Service レベルのリソースであり、 Service 間では共有されません。 下図は Application Load Balancer のみを含む Load Balanced Web Service の図です。 @@ -49,7 +48,7 @@ Application Load Balancer は Environment レベルのリソースであり、En ### Backend Service VPC 外部からアクセスさせる必要はないが、Application 内の他の Service からはアクセスできる必要があるという場合は、 __Backend Service__ を -作りましょう。Copilot は AWS Fargate で実行される ECS サービスを作成しますが、インターネットに向けて開放されたエンドポイントを作成することはありません。内部ロードバランサーを利用する Backend Service について知りたい場合は、[こちら](../developing/internal-albs.ja.md)を確認してください。 +作りましょう。Copilot は AWS Fargate で実行される ECS サービスを作成しますが、インターネットに向けて開放されたエンドポイントを作成することはありません。なお、Backend Service で内部ロードバランサーを利用することもできます。内部ロードバランサーを利用する Backend Service について知りたい場合は、[こちら](../developing/internal-albs.ja.md)を確認してください。 ![backend-service-infra](https://user-images.githubusercontent.com/879348/86046929-e8673400-ba02-11ea-8676-addd6042e517.png) diff --git a/site/content/docs/developing/sidecars.ja.md b/site/content/docs/developing/sidecars.ja.md index 3d76b9ea4ec..f3b4d8d2773 100644 --- a/site/content/docs/developing/sidecars.ja.md +++ b/site/content/docs/developing/sidecars.ja.md @@ -21,8 +21,33 @@ Copilot の Manifest でサイドカーを追加したい場合、[サイドカ
-## 実行例 +#### 実行例 +##### サイドカーでの Environment オーバーライド +他の Service / Job の Manifest と同様に、サイドカー設定も [`environments`](../manifest/lb-web-service.ja.md#environments) フィールドを利用して環境ごとにオーバーライドできます。 +次の例では、`datadog` サイドカーの環境変数 `DD_APM_ENABLED` の値を、`dev` Environment かどうかによって設定しています。 + +```yaml +name: api +type: Load Balanced Web Service + +sidecars: + datadog: + port: 80 + image: + build: src/reverseproxy/Dockerfile + variables: + DD_APM_ENABLED: true + +environments: + dev: + sidecars: + datadog: + variables: + DD_APM_ENABLED: false +``` + +##### [nginx](https://www.nginx.com/) サイドカーコンテナ 以下は Load Balanced Web Service の Manifest で [nginx](https://www.nginx.com/) サイドカーコンテナを指定する例です。 ``` yaml @@ -52,7 +77,7 @@ sidecars: NGINX_PORT: 80 ``` -以下は Service とサイドカーコンテナ両方で EFS ボリュームを用いる Manifest の一部です。 +##### Service とサイドカーコンテナ両方で EFS ボリュームを利用 ```yaml storage: @@ -74,6 +99,7 @@ sidecars: path: '/etc/mount1' ``` +##### [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) サイドカー 以下は、[AWS Distro for OpenTelemetry](https://aws-otel.github.io/) のサイドカーをカスタム構成で実行した例です。このカスタム構成例では、X-Ray トレースデータを収集するだけでなく、ECS メトリクスをサードパーティに送信することができます。この例では、SSM シークレットと追加の IAM 権限が必要になります。 OpenTelemetry サイドカーを使用するには、まず有効な[設定ファイル](https://opentelemetry.io/docs/collector/configuration/)を作成します。次に、設定ファイルのサイズを確認します。標準的なパラメータは [4KB に制限](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/APIReference/API_PutParameter.html#systemsmanager-PutParameter-request-Value)されています。設定ファイルが 4K より大きい場合、高度な SSM パラメータを使用する必要があります。 @@ -207,4 +233,3 @@ Outputs: !!!info FireLens ログドライバーは主となるコンテナのログを様々な宛先へルーティングできる一方で、 [`svc logs`](../commands/svc-logs.ja.md) コマンドは CloudWatch Logs で Copilot Service のために作成したロググループに送信された場合のみログをトラックできます。 - diff --git a/site/content/docs/manifest/environment.ja.md b/site/content/docs/manifest/environment.ja.md index 7d297f0487b..e48f3442dd2 100644 --- a/site/content/docs/manifest/environment.ja.md +++ b/site/content/docs/manifest/environment.ja.md @@ -330,7 +330,7 @@ http: http.private.`subnets` Array of Strings 内部ロードバランサーを配置するサブネット ID。 -http.private`ingress` Map[v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) で変更されました +http.private.`ingress` Map[v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) で変更されました 内部ロードバランサーを許可する Ingress ルール。 ```yaml http: diff --git a/site/content/docs/manifest/lb-web-service.ja.md b/site/content/docs/manifest/lb-web-service.ja.md index 008ac2da21e..42a6a882545 100644 --- a/site/content/docs/manifest/lb-web-service.ja.md +++ b/site/content/docs/manifest/lb-web-service.ja.md @@ -282,6 +282,9 @@ Application Load Balancer を無効化する場合は、 `http: false` と指定 http.`path` String このパスに到着したリクエストが、Service に転送されます。各リスナールールは一意のパスでリクエストを受け付ける必要があります。 +http.`alb` String [v1.32.0](../../blogs/release-v132.ja.md#imported-albs) にて追加 +インポートする既存のインターネット向け ALB の ARN または ALB 名。リスナーにリスナールールが追加されます。Copilot は証明書などの DNS 関連リソースを管理しません。 + {% include 'http-healthcheck.ja.md' %} http.`deregistration_delay` Duration diff --git a/site/content/docs/manifest/static-site.ja.md b/site/content/docs/manifest/static-site.ja.md index 59285d13580..d2b443893e1 100644 --- a/site/content/docs/manifest/static-site.ja.md +++ b/site/content/docs/manifest/static-site.ja.md @@ -43,6 +43,16 @@ Service のアーキテクチャタイプ。[Static Site](../concepts/services.j http.`alias` String Service の HTTPS ドメインエイリアス。 +http.`certificate` String +HTTPS トラフィックに利用する証明書の ARN。 +CloudFront で ACM 証明書を利用するには `us-east-1` リージョンの証明書をインポートする必要があります。以下は、Manifest の一部の例です。 + +```yaml +http: + alias: example.com + certificate: "arn:aws:acm:us-east-1:1234567890:certificate/e5a6e114-b022-45b1-9339-38fbfd6db3e2" +``` +
`files` Array of Maps diff --git a/site/content/docs/manifest/worker-service.ja.md b/site/content/docs/manifest/worker-service.ja.md index 33c518c65b8..a1e4f915e31 100644 --- a/site/content/docs/manifest/worker-service.ja.md +++ b/site/content/docs/manifest/worker-service.ja.md @@ -205,7 +205,7 @@ filter_policy: - example_corp event: - anything-but: order_cancelled - cutomer_interests: + customer_interests: - rugby - football - baseball