以下は `'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: