以下は `'Scheduled Job'` Manifest で利用できるすべてのプロパティのリストです。[Job の概念](../concepts/jobs.ja.md)説明のページも合わせてご覧ください。 ???+ note "スケジュールされた Job のサンプル Manifest" ```yaml name: report-generator type: Scheduled Job on: schedule: "@daily" cpu: 256 memory: 512 retries: 3 timeout: 1h image: build: ./Dockerfile variables: LOG_LEVEL: info env_file: log.env secrets: GITHUB_TOKEN: GITHUB_TOKEN # 上記すべての値は Environment ごとにオーバーライド可能です。 environments: prod: cpu: 2048 memory: 4096 ``` `name` String Job 名。
`type` String Job のアーキテクチャタイプ。 現在、Copilot は定期的にもしくは固定したスケジュールでトリガーされるタスクである "Scheduled Job" タイプのみをサポートしています。
`on` Map Job をトリガーするイベントの設定。 on.`schedule` String 定期的に Job をトリガーする頻度を指定できます。 サポートする頻度は: | 頻度 | 以下と同一 | `UTC` を用いた可読表記による実行タイミング | | ------------ | --------------------- | --------------------------------------------- | | `"@yearly"` | `"cron(0 * * * ? *)"` | 1 月 1 日の午前 0 時 | | `"@monthly"` | `"cron(0 0 1 * ? *)"` | 毎月 1 日の午前 0 時 | | `"@weekly"` | `"cron(0 0 ? * 1 *)"` | 毎週日曜日の午前 0 時 | | `"@daily"` | `"cron(0 0 * * ? *)"` | 毎日午前 0 時 | | `"@hourly"` | `"cron(0 * * * ? *)"` | 毎時 0 分 | * `"@every {duration}"` (例: "1m", "5m") * `"rate({duration})"` CloudWatch の[rate 式](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html#RateExpressions) の形式 特定の時間に Job をトリガーしたい場合、cron でスケジュールを指定できます。 * `"* * * * *"` 標準的な [cron フォーマット](https://en.wikipedia.org/wiki/Cron#Overview)を利用する * `"cron({fields})"` 6 つフィールドからなる CloudWatch の[cron 式](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) を利用する 最後に、`schedule` フィールドを `none` に設定することで、Job がトリガーされないようにすることができます。 ```yaml on: schedule: "none" ```
{% include 'image.ja.md' %} {% include 'image-config.ja.md' %}
`entrypoint` String or Array of Strings コンテナイメージのデフォルトエントリポイントをオーバーライドします。 ```yaml # 文字列による指定。 entrypoint: "/bin/entrypoint --p1 --p2" # あるいは文字列配列による指定も可能。 entrypoint: ["/bin/entrypoint", "--p1", "--p2"] ```
`command` String or Array of Strings コンテナイメージのデフォルトコマンドをオーバーライドします。 ```yaml # 文字列による指定。 command: ps au # あるいは文字列配列による指定も可能。 command: ["ps", "au"] ```
`cpu` Integer タスクに割り当てる CPU ユニット数。指定可能な値については [Amazon ECS ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task-cpu-memory-error.html)をご覧ください。
`memory` Integer タスクに割り当てるメモリ量(MiB)。指定可能な値については [Amazon ECS ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task-cpu-memory-error.html)をご覧ください。
`platform` String `docker build --platform` で渡すオペレーティングシステムとアーキテクチャ。(`[os]/[arch]` の形式で指定) 例えば、`linux/arm64` や `windows/x86_64` といった値です。デフォルトは `linux/x86_64` です。 生成された文字列を上書きして、有効な異なる `osfamily` や `architecture` を明示的に指定してビルドすることができます。例えば Windows ユーザーの場合は、 ```yaml platform: windows/x86_64 ``` とするとデフォルトは `WINDOWS_SERVER_2019_CORE` が利用されますが、 Map を使って以下のように指定できます: ```yaml platform: osfamily: windows_server_2019_full architecture: x86_64 ``` ```yaml platform: osfamily: windows_server_2019_core architecture: x86_64 ``` ```yaml platform: osfamily: windows_server_2022_core architecture: x86_64 ``` ```yaml platform: osfamily: windows_server_2022_full architecture: x86_64 ```
`retries` Integer Job が失敗するまでにリトライする回数。
`timeout` Duration Job の実行時間。この時間を超えた場合、Job は停止されて失敗となります。単位には `h`, `m`, `s`が利用できます。
`network` Map `network` セクションは VPC 内の AWS リソースに接続するためのパラメータを持ちます。 network.`vpc` Map タスクにアタッチするサブネットとセキュリティグループ。 network.vpc.`placement` String `'public'` か `'private'`のいずれかである必要があります。デフォルトではタスクはパブリックサブネットで起動します。 !!! info Copilot が作成した VPC の `'private'` サブネットを利用してタスクを実行する場合、Copilot は Environment に NAT ゲートウェイを追加します。あるいは Copilot 外で作成した VPC を `copilot env init` コマンドにてインポートしている場合は、その VPC に NAT ゲートウェイがあり、プライベートサブネットからインターネットへの接続性があることを確認してください。 network.vpc.`security_groups` Array of Strings タスクに関連づける追加のセキュリティグループのリスト。Copilot は常にセキュリティグループを含んでおり、環境内のコンテナは互いに通信できるようになっています。
`variables` Map Job に環境変数として渡される key-value ペア。Copilot ではデフォルトでいくつかの環境変数が含まれています。
`secrets` Map [AWS Systems Manager パラメータストア](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-parameter-store.html) から環境変数として Job に安全に渡される key-value ペア。
`storage` Map Storage セクションではコンテナとサイドカーからマウントする外部の EFS ボリュームを指定します。これにより、データ処理や CMS のワークロードのために、リージョン内で永続ストレージへアクセスできるようになります。より詳しくは [ストレージ](../developing/storage.ja.md) のページを確認してください。 storage.`volumes` Map アタッチする EFS ボリュームの名前と設定を指定します。`volumes` フィールドは次の形式の Map として指定されます: ```yaml volumes: : path: "/etc/mountpath" efs: ... ``` storage.volumes.`` Map ボリュームの設定を指定します。 storage.volumes.``.`path` String 必須項目。コンテナ内でボリュームをマウントしたい場所を指定します。利用できる文字は `a-zA-Z0-9.-_/` のみで、 242 文字未満である必要があります。 storage.volumes.``.`read_only` Bool 任意項目。デフォルトでは `true` です。ボリュームが読み込み専用か否かを定義します。 false の場合、コンテナにファイルシステムへの `elasticfilesystem:ClientWrite` 権限が付与され、ボリュームは書き込み可能になります。 storage.volumes.``.`efs` Map より詳細な EFS の設定。 storage.volumes.``.efs.`id` String 必須項目。マウントするファイルシステムの ID 。 storage.volumes.``.efs.`root_dir` String 任意項目。デフォルトは `/` です。ボリュームのルートとして使用する EFS ファイルシステム内の場所を指定します。利用できる文字は `a-zA-Z0-9.-_/` のみで、 255 文字未満である必要があります。アクセスポイントを利用する場合、`root_dir` は空か `/` であり、`auth.iam` が `true` である必要があります。 storage.volumes.``.efs.`auth` Map EFS の高度な認可の設定を指定します。 storage.volumes.``.efs.auth.`iam` Bool 任意項目。デフォルトは `true` です。volume の EFS への接続の可否の判定に IAM を利用するかしないかを設定します。 storage.volumes.``.efs.auth.`access_point_id` String 任意項目。デフォルトでは `""` が設定されます。接続する EFS アクセスポイントの ID です。アクセスポイントを利用する場合、`root_dir` は空か `/` であり、`auth.iam` が `true` である必要があります。
`logging` Map logging セクションには、コンテナの [FireLens](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) ログドライバ用のログ設定パラメータが含まれます。(設定例は[こちら](../developing/sidecars.ja.md#sidecar-patterns)) logging.`image` Map 任意項目。使用する Fluent Bit のイメージ。デフォルト値は `public.ecr.aws/aws-observability/aws-for-fluent-bit:stable`。 logging.`destination` Map 任意項目。Firelens ログドライバーにログを送信するときの設定。 logging.`enableMetadata` Map 任意項目。ログに ECS メタデータを含むかどうか。デフォルトは `true`。 logging.`secretOptions` Map 任意項目。ログの設定に渡す秘密情報です。 logging.`configFilePath` Map 任意項目。カスタムの Fluent Bit イメージ内の設定ファイルのフルパス。 {% include 'publish.ja.md' %}
`environments` Map environments セクションは Environment の設定を Manifest で指定した値によって上書きできるようにします。 上記の例の Manifest では、 CPU のパラメータを上書きしているので production のコンテナはよりパフォーマンスが高くなります。