以下は `'Request-Driven Web Service'` Manifest で利用できるすべてのプロパティのリストです。[Copilot Service の概念](../concepts/services.ja.md)説明のページも合わせてご覧ください。 ???+ note "AWS App Runner のサンプル Manifest" === "Public" ```yaml # https://web.example.com からアクセス可能な Web サービスをデプロイします。 name: frontend type: Request-Driven Web Service http: healthcheck: '/_healthcheck' alias: web.example.com image: build: ./frontend/Dockerfile port: 80 cpu: 1024 memory: 2048 variables: LOG_LEVEL: info tags: owner: frontend observability: tracing: awsxray secrets: GITHUB_TOKEN: GITHUB_TOKEN DB_SECRET: secretsmanager: '${COPILOT_APPLICATION_NAME}/${COPILOT_ENVIRONMENT_NAME}/mysql' environments: test: variables: LOG_LEVEL: debug ``` === "Connected to the environment VPC" ```yaml # すべての Egress トラフィックは、Environment の VPCを経由してルーティングされます。 name: frontend type: Request-Driven Web Service image: build: ./frontend/Dockerfile port: 8080 cpu: 1024 memory: 2048 network: vpc: placement: private ``` === "Event-driven" ```yaml # https://aws.github.io/copilot-cli/docs/developing/publish-subscribe/ を参照してください。 name: refunds type: Request-Driven Web Service image: build: ./refunds/Dockerfile port: 8080 http: alias: refunds.example.com cpu: 1024 memory: 2048 publish: topics: - name: 'refunds' - name: 'orders' fifo: true ``` `name` String Service の名前。
`type` String Service のアーキテクチャタイプ。 [Load Balanced Web Service](../concepts/services.ja.md#request-driven-web-service) は、AWS App Runner にデプロイされる、インターネットに公開するための Service です。
`http` Map http セクションは、マネージドロードバランサの連携に関するパラメーターを含みます。 http.`private` Bool or Map 受信トラフィックを Envrionment のみに制限します。デフォルトは false です。 http.private`endpoint` String App Runner に対する既存の VPC エンドポイントの ID です。 ```yaml http: private: endpoint: vpce-12345 ``` http.`healthcheck` String or Map 文字列を指定した場合、Copilot は、ターゲットグループからのヘルスチェックリクエストを処理するためにコンテナが公開しているパスと解釈します。デフォルトは "/" です。 ```yaml http: healthcheck: '/' ``` あるいは以下のように Map によるヘルスチェックも指定可能です。 ```yaml http: healthcheck: path: '/' healthy_threshold: 3 unhealthy_threshold: 2 interval: 15s timeout: 10s ``` http.healthcheck.`path` String ヘルスチェック送信先。 http.healthcheck.`healthy_threshold` Integer unhealthy なターゲットを healthy とみなすために必要な、連続したヘルスチェックの成功回数を指定します。デフォルト値は 3 で、設定可能な範囲は、1 〜 20 です。 http.healthcheck.`unhealthy_threshold` Integer ターゲットが unhealthy であると判断するまでに必要な、連続したヘルスチェックの失敗回数を指定します。デフォルト値は 3 で、設定可能な範囲は、1 〜 20 です。 http.healthcheck.`interval` Duration 個々のターゲットへのヘルスチェックを行う際の、おおよその間隔を秒単位で指定します。デフォルト値は 5 秒で、設定可能な範囲は、1 〜 20 です。 http.healthcheck.`timeout` Duration ターゲットからの応答がない場合、ヘルスチェックが失敗したとみなすまでの時間を秒単位で指定します。デフォルト値は 2 秒で、設定可能な範囲は、1 〜 20 です。 http.`alias` String Request-Driven Web Service にフレンドリーなドメイン名を割り当てます。詳しくは [developing/domain](../developing/domain.ja.md##request-driven-web-service) をご覧ください。
`image` Map image セクションは、Docker ビルドに関する設定や公開するポートについてのパラメータを含みます。 image.`build` String or Map このフィールドに String(文字列)を指定した場合、Copilot はそれを Dockerfile の場所を示すパスと解釈します。その際、指定したパスのディレクトリ部が Docker のビルドコンテキストであると仮定します。以下は build フィールドに文字列を指定する例です。 ```yaml image: build: path/to/dockerfile ``` これにより、イメージビルドの際に次のようなコマンドが実行されることになります: `$ docker build --file path/to/dockerfile path/to` build フィールドには Map も利用できます。 ```yaml image: build: dockerfile: path/to/dockerfile context: context/dir target: build-stage cache_from: - image:tag args: key: value ``` この例は、Copilot は Docker ビルドコンテキストに context フィールドの値が示すディレクトリを利用し、args 以下のキーバリューのペアをイメージビルド時の --build-args 引数として渡します。上記例と同等の docker build コマンドは次のようになります: `$ docker build --file path/to/dockerfile --target build-stage --cache-from image:tag --build-arg key=value context/dir`. Copilot はあなたの意図を理解するために最善を尽くしますので、記述する情報の省略も可能です。例えば、`context` は指定しているが `dockerfile` は未指定の場合、Copilot は Dockerfile が "Dockerfile" という名前で存在すると仮定しつつ、docker コマンドを `context` ディレクトリ以下で実行します。逆に `dockerfile` は指定しているが `context` が未指定の場合は、Copilot はあなたが `dockerfile` で指定されたディレクトリをビルドコンテキストディレクトリとして利用したいのだと仮定します。 すべてのパスはワークスペースのルートディレクトリからの相対パスと解釈されます。 image.`location` String Dockerfile からコンテナイメージをビルドする代わりに、既存のコンテナイメージ名の指定も可能です。[`image.build`](#image-build) との同時利用はできません。 !!! note 現時点では [Amazon ECR Public](https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/public/public-repositories.html) に格納されたコンテナイメージが利用可能です。 image.`port` Integer 公開するポート番号。Dockerfile 内に `EXPOSE` インストラクションが記述されている場合、Copilot はそれをパースした値をここに挿入します。
`cpu` Integer Service のインスタンスに割り当てる CPU ユニット数。指定可能な値については [AWS App Runner ドキュメント](https://docs.aws.amazon.com/ja_jp/apprunner/latest/api/API_InstanceConfiguration.html#apprunner-Type-InstanceConfiguration-Cpu)をご覧ください。
`memory` Integer タスクに割り当てるメモリ量(MiB)。指定可能な値については [AWS App Runner ドキュメント](https://docs.aws.amazon.com/ja_jp/apprunner/latest/api/API_InstanceConfiguration.html#apprunner-Type-InstanceConfiguration-Memory)をご覧ください。
`network` Map `network` セクションには、Environment の VPC 内の AWS リソースに Service を接続するためのパラメータが含まれています。Service を VPC に接続することで、[サービスディスカバリ](../developing/svc-to-svc-communication.ja.md#service-discovery)を使用して Environment 内の他の Service と通信したり、[`storage init`](../commands/storage-init.ja.md)で Amazon Aurora などの VPC 内のデータベースに接続することができます。 network.`vpc` Map Service からの Egress トラフィックをルーティングする VPC 内のサブネットを指定します。 network.vpc.`placement` String この項目において現在有効なオプションは `'private'` のみです。もし、Service が VPC に接続されないことを期待する場合は、`network` セクションを削除してください。 この項目が 'private' の場合、App Runner サービスは VPC のプライベートサブネットを経由して Egress トラフィックをルーティングします。 Copilot で生成された VPC を使用する場合、Copilot はインターネット接続用の NAT Gateway を Environment に自動的に追加します。 ([VPC の料金](https://aws.amazon.com/jp/vpc/pricing/)をご覧ください。) また、`copilot env init` を実行する際に、NAT ゲートウェイを持つ既存の VPC や、分離されたワークロードのための VPC エンドポイントをインポートすることも可能です。詳しくは、[Environment のリソースをカスタマイズする](../developing/custom-environment-resources.ja.md)をご覧ください。 {% include 'observability.ja.md' %}
`command` String 任意項目。コンテナイメージのデフォルトコマンドをオーバーライドします。
`variables` Map Copilot は Service 名などを常に環境変数としてインスタンスに対して渡します。本フィールドではそれら以外に追加で渡したい環境変数をキー・値のペアで指定します。 {% include 'secrets.ja.md' %} {% include 'publish.ja.md' %}
`tags` Map AWS App Runner リソースとして渡される AWS タグを表すキー・値ペアです。
`count` String 既存のオートスケーリング設定の名前を指定します。 ```yaml count: high-availability/3 ```
`environments` Map `environments` セクションでは、Manifest 内の任意の設定値を Environment ごとにオーバーライドできます。上部記載の Manifest 例では test Environment における `LOG_LEVEL` 環境変数の値をオーバーライドしています。