

# S3 バッチオペレーションジョブの作成
<a name="batch-ops-create-job"></a>

Amazon S3 バッチオペレーションを使用すると、特定の Amazon S3 オブジェクトのリストに対して大規模なバッチオペレーションを実行できます。このセクションでは、S3 バッチ操作ジョブの作成に必要な情報と `CreateJob` リクエストの結果について説明します。また、AWS Command Line Interface (AWS CLI)、AWS SDK for Java を使用したバッチオペレーションジョブの作成手順についても説明します。

S3 バッチオペレーションジョブを作成するときに、すべてのタスクまたは失敗したタスクについてのみ完了レポートをリクエストできます。少なくとも 1 つのタスクが正常に呼び出される限り、S3 バッチオペレーションは、完了、失敗、またはキャンセルされたジョブに関するレポートを生成します。詳細については、「[例: S3 バッチ操作完了レポート](batch-ops-examples-reports.md)」を参照してください。

次の動画では、Amazon S3 コンソールを使用してバッチオペレーションジョブを作成する方法の簡単なデモンストレーションを提供しています

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/qpwHUrwAiUI//0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/qpwHUrwAiUI/)


**Topics**
+ [バッチ操作ジョブのリクエストの要素](#batch-ops-create-job-request-elements)
+ [マニフェストの指定](#specify-batchjob-manifest)
+ [オブジェクトリストを自動的に生成し、マニフェストファイルとして保存する](#automatically-generate-manifest-file)
+ [マニフェストファイルの作成](#create-manifest-file)
+ [既存のマニフェストを使用する](#specify-existing-manifest-file)
+ [ジョブの作成](#to-create-batch-ops-job)
+ [ジョブのレスポンス](#batch-ops-create-job-response-elements)

## バッチ操作ジョブのリクエストの要素
<a name="batch-ops-create-job-request-elements"></a>

S3 バッチ操作ジョブを作成するには、次の情報を指定する必要があります。

**オペレーション**  
S3 バッチ操作でマニフェストのオブジェクトに対して実行するオペレーションを指定します。オペレーションのタイプごとに、そのオペレーションに固有のパラメータを受け入れます。バッチオペレーションを使用すると、オペレーションを一括で実行でき、各オブジェクトに対してそのオペレーションを 1 つずつ実行した場合と同じ結果が得られます。

**マニフェスト**  
*マニフェスト*は、Amazon S3 が動作するオブジェクトキーを含む Amazon S3 オブジェクトリストです。バッチオペレーションジョブのマニフェストは、次の方法で指定できます。  
+ 指定したメタデータに基づいてオブジェクトリストを生成するようにバッチオペレーションに指示します。このリストをマニフェストファイルとして保存し、ジョブの作成時に使用できます。このオプションは、Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して作成した任意のジョブタイプで使用できます。
+ 既存のレプリケーション設定に基づいてオブジェクトリストを自動的に生成します。このリストをマニフェストファイルとして保存し、今後のジョブで再度使用できます。
+ 新しいマニフェストファイルを手動で作成する。
+ 既存のマニフェストを使用する。
+ 作業するオブジェクトをどのように指定するかにかかわらず、マニフェスト自体は汎用バケットに保存する必要があります。バッチオペレーションでは、既存のマニフェストをディレクトリバケットからインポートしたり、生成されたオブジェクトリストをマニフェストとしてディレクトリバケットに保存したりすることはできません。ただし、マニフェスト内に記述されたオブジェクトはディレクトリバケットに保存できます。詳細については、「[ディレクトリバケット](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)」を参照してください。
+ マニフェスト内のオブジェクトがバージョニング対象のバケット内にある場合は、そのオブジェクトのバージョン ID を指定すると特定のバージョンに対してオペレーションが実行されます。バージョン ID が指定されていない場合、バッチオペレーションはオブジェクトの最新バージョンに対してオペレーションを実行します。マニフェストにバージョン ID フィールドが含まれている場合は、マニフェスト内にあるすべてのオブジェクトのバージョン ID を指定する必要があります。
詳細については、「[マニフェストの指定](#specify-batchjob-manifest)」を参照してください。

**優先度**  
ジョブの優先順位を使用して、自分のアカウントで実行中の他のユーザーに対するこのジョブの相対的な優先順位を示します。番号が大きいほど、優先度が高いことを表します。  
ジョブの優先度は、同じアカウントとリージョンの他のジョブに設定された優先度に相対して解釈されます。お客様に合った番号付け体系を選択できます。例えば、すべての **[復元]** (`RestoreObject`) ジョブに優先度 1、すべての **[コピー]** (`CopyObject`) ジョブに優先度 2、すべての **[アクセスコントロールリスト (ACL) に置き換える]** (`PutObjectAcl`) ジョブに優先度 3 を割り当てることができます。  
S3 バッチオペレーションでは、優先度の数字に従ってジョブに優先順位が付けられます。ただし、厳密に順序付けされるとは限りません。そのため、いずれかのジョブをその他のジョブよりも前に開始または終了させるためにジョブの優先度は使用すべきではありません。厳密な順序付けする必要がある場合は、1 つのジョブが終了するまで待ってから次のジョブを開始します。

**RoleArn**  
ジョブを実行する AWS Identity and Access Management (IAM) ロールを指定します。使用する IAM ロールには、そのジョブで指定されているオペレーションを実行するための十分なアクセス許可が必要です。例えば、`CopyObject` ジョブを実行するには、IAM ロールに、ソースバケットに対する `s3:GetObject` アクセス許可と、送信先バケットに対する `s3:PutObject` アクセス許可が必要です。このロールには、マニフェストを読み取り、完了レポートを書き込むためのアクセス許可も必要です。  
IAM ロールは既存のロールにすることができます。または、Amazon S3 コンソールを使用してジョブを作成する場合、Amazon S3 が自動的に作成する IAM ロールにすることができます。詳細については、「[バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md)」を参照してください。  
IAM ロールの詳細については、*IAM ユーザーガイド*の [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)を参照してください。Amazon S3 のアクセス許可の詳細については、「[Amazon S3 のポリシーアクション](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions)」を参照してください。  
ディレクトリバケットに対してアクションを実行するバッチオペレーションジョブには、特定のアクセス許可が必要です。詳細については、[S3 Express One Zone 向け AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)」を参照してください。

**レポート**  
S3 バッチ操作で完了レポートを生成するかどうかを指定します。完了レポートをリクエストする場合は、この要素にレポートのパラメータも指定する必要があります。次の情報が返されます。  
+ レポートを保存するバケット。
**注記**  
レポートは汎用バケットに保存する必要があります。バッチオペレーションではレポートをディレクトリバケットに保存できません。詳細については、「[ディレクトリバケット](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)」を参照してください。
+ レポートの形式。
+ レポートに、すべてのタスクの詳細を含めるか、失敗したタスクのみを含めるかを指定します。
+ オプションのプレフィックス文字列
`CreateJob.Report.ExpectedBucketOwner` フィールドを指定する場合は、完了レポートのバケット所有者が一致している必要があります。一致しない場合、ジョブは失敗します。  
完了レポートは、常に Amazon S3 マネージドキー (SSE-S3) によるサーバー側の暗号化で暗号化されます。

**[タグ (省略可能)]**  
*タグ*を追加することで、S3 バッチ操作ジョブへのラベル付けとアクセスの制御を実行できます。タグを使用して、バッチオペレーションジョブの担当者を識別したり、ユーザーがバッチオペレーションジョブを操作する方法を制御したりできます。ジョブタグがあることで、ユーザーによるジョブのキャンセル、確認状態にあるジョブの有効化、ジョブの優先度レベルの変更を許可したり制限したりできます。例えば、ジョブが `"Department=Finance"` タグ付きで作成されている場合、`CreateJob` オペレーションを呼び出すアクセス許可をユーザーに付与できます。  
タグをアタッチしてジョブを作成し、後でジョブにタグを追加できます。  
詳細については、「[タグを使用したアクセスのコントロールとジョブのラベル付け](batch-ops-job-tags.md)」を参照してください。

**Description (オプション) **  
ジョブを追跡および監視するために、最大 256 文字の説明を指定することもできます。Amazon S3 では、ジョブに関する情報を返すか、Amazon S3 コンソールにジョブの詳細を表示するたびに、この説明が含まれます。これによって、入力した説明に応じて簡単にジョブを並べ替えたりフィルタリングしたりできます。説明は一意である必要はないので、類似したジョブのグループを追跡するのに役立つように、説明をカテゴリとして使用することができます (「Weekly Log Copy Jobs」など)。

## マニフェストの指定
<a name="specify-batchjob-manifest"></a>

*マニフェスト*は、Amazon S3 が動作するオブジェクトキーを含む Amazon S3 オブジェクトリストです。バッチオペレーションジョブのマニフェストは、次の方法で指定できます。
+ 指定したメタデータに基づいてオブジェクトリストを生成するようにバッチオペレーションに指示します。このリストをマニフェストとして保存し、ジョブの作成時に使用できます。このオプションは、Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して作成した任意のジョブタイプで使用できます。
+ 既存のレプリケーション設定に基づいてオブジェクトリストを自動的に生成します。このリストをマニフェストとして保存し、今後のジョブで再度使用できます。
+ 新しいマニフェストファイルを手動で作成する。
+ 既存のマニフェストを使用する。

**注記**  
Amazon S3 バッチオペレーションは、クロスリージョンのオブジェクトリスト生成をサポートしていません。
作業するオブジェクトをどのように指定するかにかかわらず、マニフェスト自体は汎用バケットに保存する必要があります。バッチオペレーションでは、既存のマニフェストをディレクトリバケットからインポートしたり、生成されたオブジェクトリストをマニフェストとしてディレクトリバケットに保存したりすることはできません。ただし、マニフェスト内に記述されたオブジェクトはディレクトリバケットに保存できます。詳細については、「[ディレクトリバケット](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)」を参照してください。

## オブジェクトリストを自動的に生成し、マニフェストファイルとして保存する
<a name="automatically-generate-manifest-file"></a>

指定したメタデータに基づいてオブジェクトリストを自動的に生成するように Amazon S3 に指示できます。このリストをマニフェストとして保存し、ジョブの作成時に使用できます。このオプションは、Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して作成した任意のジョブタイプで使用できます。

オブジェクトリストを自動的に生成してマニフェストファイルとして保存するには、ジョブ作成リクエストの一環として次の要素を指定します。
+ バケット所有者や Amazon リソースネーム (ARN) など、ソースオブジェクトが含まれるバケットに関する情報。
+ マニフェストファイルを作成するためのフラグ、出力バケット所有者、ARN、プレフィックス、ファイル形式、暗号化タイプなど、マニフェスト出力に関する情報。
+ 作成日、キー名、サイズ、暗号化タイプ、KMS キー ARN、バケットキー、ストレージクラスでオブジェクトをフィルタリングするオプションの条件。レプリケーションジョブの場合は、タグを使用してオブジェクトをフィルタリングすることもできます。

### オブジェクトフィルターの条件
<a name="manifest-generator-filter-criteria"></a>

自動生成されたオブジェクトリストに含まれるオブジェクトのリストをフィルタリングするには、次の条件を指定できます。詳細については、「**Amazon S3 API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html)」を参照してください。

**CreatedAfter**  
指定した場合、生成されたマニフェストには、この時間以降に作成されたソースバケットオブジェクトのみが含まれます。

**CreatedBefore**  
指定した場合、生成されたマニフェストには、この時間以降に作成されたソースバケットオブジェクトのみが含まれます。

**EligibleForReplication**  
指定した場合、生成されたマニフェストには、ソースバケットのレプリケーション設定に従ってレプリケーションの対象となるオブジェクトのみが含まれます。

**KeyNameConstraint**  
指定された場合、生成されたマニフェストには、オブジェクトキーが **MatchAnySubstring**、**MatchAnyPrefix**、**MatchAnySuffix** に指定された文字列制約と一致するソースバケットオブジェクトのみが含まれます。  
**MatchAnySubstring** – 指定した場合、指定された文字列がオブジェクトキー文字列内のいずれかの部分に出現する場合、生成されたマニフェストにそのオブジェクトが含まれます。  
**MatchAnyPrefix** – 指定すると、指定された文字列がオブジェクトキー文字列の先頭に現れる場合、生成されたマニフェストにオブジェクトが含まれます。  
**MatchAnySuffix** – 指定した場合、指定された文字列がオブジェクトキー文字列の末尾に出現する場合、生成されたマニフェストにオブジェクトが含まれます。

**MatchAnyObjectEncryption**  
 指定した場合、マニフェストファイルとして保存された生成されたオブジェクトリストには、指定されたサーバー側の暗号化タイプ (SSE-S3、SSE-KMS、DSSE-KMS、SSE-C、または NOT-SSE) を持つソースバケットオブジェクトのみが含まれます。SSE-KMS または DSSE-KMS を選択した場合、オプションで特定の KMS キー ARN を指定して結果をさらにフィルタリングできます。SSE-KMS を選択した場合は、オプションでバケットキーの有効ステータスで結果をさらにフィルタリングすることもできます。

**MatchAnyStorageClass**  
指定した場合、生成されたマニフェストには、指定されたストレージクラスで保存されているソースバケットオブジェクトのみが含まれます。

**ObjectReplicationStatuses**  
指定した場合、生成されたマニフェストには、指定されたレプリケーションステータスのいずれかを持つソースバケットオブジェクトのみが含まれます。

**ObjectSizeGreaterThanBytes**  
指定した場合、生成されたマニフェストには、ファイルサイズが指定されたバイト数以上のソースバケットオブジェクトのみが含まれます。

**ObjectSizeLessThanBytes**  
指定した場合、生成されたマニフェストには、ファイルサイズが指定されたバイト数未満のソースバケット オブジェクトのみが含まれます。

**注記**  
自動的に生成されたオブジェクトリストがマニフェストとして保存されているほとんどのジョブのクローン作成はできません。バッチ レプリケーション ジョブは`KeyNameConstraint`、`MatchAnyStorageClass`、`ObjectSizeGreaterThanBytes`、または `ObjectSizeLessThanBytes` マニフェストフィルター条件を使用する場合を除き、クローンを作成できます。

マニフェスト条件を指定する構文は、ジョブの作成に使用する方法に応じて異なります。例については「[ジョブの作成](#to-create-batch-ops-job)」を参照してください。

## マニフェストファイルの作成
<a name="create-manifest-file"></a>

ジョブのマニフェストを手動で作成するには、マニフェストオブジェクトキー、ETag (エンティティタグ)、オプションでバージョン ID を CSV 形式のリストで指定します。マニフェストの内容は URL エンコードされている必要があります。

デフォルトでは、Amazon S3 は、Amazon S3 マネージドキー (SSE-S3) を使用したサーバー側暗号化を自動的に使用して、Amazon S3 バケットにアップロードされるマニフェストを暗号化します。顧客指定のキーを使用したサーバー側の暗号化 (SSE-C) を使用するマニフェストはサポートされていません。AWS Key Management Service (AWS KMS) キー (SSE-KMS) でサーバー側の暗号化を使用するマニフェストは、CSV 形式のインベントリレポートを使用する場合にのみサポートされます。AWS KMS を使用したマニフェストの手動作成はサポートされていません。

マニフェストには、各オブジェクトのバケット名、オブジェクトキー、およびオプションでオブジェクトバージョンを含める必要があります。マニフェストのその他のフィールドは、S3 バッチ操作では使用されません。

**注記**  
マニフェスト内のオブジェクトがバージョニング対象のバケット内にある場合は、そのオブジェクトのバージョン ID を指定すると特定のバージョンに対してオペレーションが実行されます。バージョン ID が指定されていない場合、バッチオペレーションはオブジェクトの最新バージョンに対してオペレーションを実行します。マニフェストにバージョン ID フィールドが含まれている場合は、マニフェスト内にあるすべてのオブジェクトのバージョン ID を指定する必要があります。

CSV 形式のマニフェスト（バージョン ID なし）の例を以下に示します。

```
amzn-s3-demo-bucket1,objectkey1
amzn-s3-demo-bucket1,objectkey2
amzn-s3-demo-bucket1,objectkey3
amzn-s3-demo-bucket1,photos/jpgs/objectkey4
amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5
amzn-s3-demo-bucket1,object%20key%20with%20spaces
```

バージョン ID を含む CSV 形式のマニフェストの例は次のとおりです。

```
amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p
amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF
amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI
amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4
amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs
amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w
```

## 既存のマニフェストを使用する
<a name="specify-existing-manifest-file"></a>

次の 2 つの形式のいずれかを使用して、既存のマニフェストを指定してバッチオペレーションジョブを作成できます。
+ **Amazon S3 インベントリレポート** - CSV 形式の Amazon S3 インベントリレポートである必要があります。インベントリレポートに関連付けられた `manifest.json` ファイルを指定する必要があります。インベントリレポートの詳細については、「[S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md)」を参照してください。インベントリレポートにバージョン ID が含まれている場合、S3 バッチ操作は特定のオブジェクトのバージョンに対して実行されます。
**注記**  
S3 バッチオペレーションは、SSE-KMS で暗号化された CSV **インベントリレポートをサポートしています。
SSE-KMS で暗号化されたインベントリレポートマニフェストを送信する場合、IAM ポリシーには、`"kms:Decrypt"`、`manifest.json` オブジェクトのための `"kms:GenerateDataKey"`、関連するすべての CSV データ ファイルに対するアクセス許可が含まれている必要があります。
+ **CSV ファイル** – ファイルの各行には、バケット名とオブジェクトのキーを含める必要があります。また、任意でオブジェクトのバージョンを含めることができます。オブジェクトキーは、次の例に示されているように、URL エンコードする必要があります。マニフェストには、すべてのオブジェクトのバージョン ID を含めるか、すべてのオブジェクトのバージョン ID を省略する必要があります。CSV マニフェスト形式の詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestSpec.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestSpec.html)」を参照してください。.
**注記**  
S3 バッチオペレーションは、SSE-KMS で暗号化された CSV **マニフェストファイルをサポートしていません。

**重要**  
手動で作成したマニフェストとバージョニング対応のバケットを使用する場合は、そのオブジェクトのバージョン ID を指定することをお勧めします。ジョブを作成すると、S3 バッチ操作はジョブを実行する前にマニフェスト全体を解析します。ただし、これによってバケットの状態は「スナップショット」されません。  
マニフェストには数十億のオブジェクトが含まれる可能性があるため、ジョブの実行に時間がかかる可能性があり、その結果ジョブが動作するオブジェクトのバージョンに影響を与える場合があります。ジョブの実行中にオブジェクトを新しいバージョンで上書きして、そのオブジェクトのバージョン ID を指定しなかったとします。この場合、Amazon S3 は、ジョブの作成時に存在していたバージョンではなく、オブジェクトの最新バージョンに対してオペレーションを実行します。この動作を回避する唯一の方法は、マニフェスト内でリストされたオブジェクトにバージョン ID を指定することです。

## ジョブの作成
<a name="to-create-batch-ops-job"></a>

 Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して S3 バッチオペレーションジョブを作成できます。

ジョブリクエストの作成の詳細については、[バッチ操作ジョブのリクエストの要素](#batch-ops-create-job-request-elements) を参照してください。

**前提条件**  
バッチオペレーションジョブを作成する前に、関連するアクセス許可が設定されていることを確認します。詳細については、「[バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md)」を参照してください。

### S3 コンソールの使用
<a name="batch-ops-create-job-console"></a>

**S3 コンソールを使用してバッチオペレーションジョブを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. Amazon S3 コンソールのナビゲーションペインで **[バッチオペレーション]** を選択します。

1. **[ジョブの作成]** を選択します。

1. **[リージョンとスコープを選択]** で、ジョブを作成する AWS リージョンを選択して表示します。
**注記**  
コピーオペレーションの場合は、コピー先バケットと同じリージョンにジョブを作成する必要があります。その他すべてのオペレーションの場合は、マニフェスト内のオブジェクトと同じリージョンにジョブを作成する必要があります。

1. **[スコープ]** には、バッチオペレーションジョブが実行するオブジェクトのリストを指定します。

   **[オブジェクトリスト]** では、オブジェクトリストを使用してマニフェストを生成するか、レプリケーション設定を使用してマニフェストを生成するか、既存のマニフェストを使用するかを選択できます。
   + **[オブジェクトリストの生成]** を選択すると、指定したソースの場所とメタデータに基づいてオブジェクトリストが自動的に生成されます。このリストをマニフェストとして保存し、今後のジョブで再度使用できます。
**注記**  
オブジェクトリストを生成するには、`s3:PutInventoryConfiguration` アクセス許可が必要です。ソースバケットは汎用バケットである必要があります。
   + **[既存のマニフェストを使用]** を選択した場合は、既存のマニフェストからオブジェクトリストをインポートできます。マニフェストは、バッチオペレーションで実行する特定のオブジェクトを一覧表示する S3 インベントリレポートまたは CV ファイルです。
   + **[レプリケーション設定の使用]** を選択する場合、既存のレプリケーション設定に基づいてオブジェクトリストを自動的に生成できます。このリストをマニフェストとして保存し、今後のジョブで再度使用できます。

      この例では、**[オブジェクトリストの生成]** を選択します。

1. **[ソースアカウント]** で、ソースオブジェクトを所有するアカウントを選択します。

1. **[ソース]** に、ソースへのパスを入力します。例: `s3://`*amzn-s3-demo-bucket*。

1. **[オブジェクトフィルター]** では、フィルターを使用してオブジェクトキーの任意の部分でフィルタリングしたり、オブジェクトキーの末尾でフィルタリングしたりできます。**[オブジェクトキーフィルター]** は、マニフェストで使用するオブジェクトのリストの絞り込みに役立ちます。**[オブジェクトメタデータフィルター]** では、フィルターを選択して、マニフェストに含めるオブジェクトの範囲をさらに定義します。

1. **[オペレーションを選択]** で、マニフェストにリストされたすべてのオブジェクトを実行するオペレーションタイプを選択します。マニフェストがディレクトリバケットに保存されているオブジェクトを参照する場合は、コピーのみを使用するか、AWS Lambda 関数オペレーションを呼び出します。その他のすべてのオペレーションはサポートされていません。

1. オペレーションタイプを選択した後、**[次へ]** を選択します。

1. **[追加のオプションを設定]** に関する情報を入力します。

   **[アクセス許可]** には、ジョブで使用する AWS Identity and Access Management (IAM) ロールを指定します。これは、既存のロールでも、Amazon S3 が自動的に作成するロールでもかまいません。詳細については、「[バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md)」を参照してください。フィルター付きの S3 生成オブジェクトリストまたはレプリケーション設定に基づくオブジェクトリストを使用するようにジョブを設定した場合、Amazon S3 によってロールが作成されます。

1. 追加オプションの設定が完了したら、**[次へ]** を選択します。

1. [**Review (確認)**] で、設定を確認します。変更が必要な場合は、[**戻る**] を選択します。それ以外の場合は、**[ジョブの送信]** を選択できます。

### の使用AWS CLI
<a name="batch-ops-example-cli-job-create"></a>

AWS CLI を使用してバッチオペレーションジョブを作成するには、既存のマニフェストを指定するか、マニフェストを自動的に生成するかに応じて、次のいずれかの例を選択します。

------
#### [ Specify manifest ]

AWS CLI を使用して、既存のマニフェストファイルにリストされているオブジェクトに対して動作する S3 バッチオペレーション `S3PutObjectTagging` ジョブを作成する方法は、次の例のとおりです。

**マニフェストを指定してバッチオペレーション `S3PutObjectTagging` ジョブを作成するには**

1. 次のコマンドを使用して AWS Identity and Access Management (IAM) ロールを作成してから、IAM ポリシーを作成して関連するアクセス許可を割り当てます。次のロールとポリシーは、オブジェクト タグを追加するための Amazon S3 アクセス許可を付与します。このアクセス許可は、以降のステップでジョブを作成する際に必要になります。

   1. 次のコマンド例を使用して、バッチオペレーションで使用する IAM ロールを作成します。このコマンド例を使用するには、`S3BatchJobRole` をロールにつける名前に置き換えます。

      ```
      aws iam create-role \
       --role-name S3BatchJobRole \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 ,
         "Statement":[
            {
               "Effect":"Allow",
               "Principal":{
                  "Service":"batchoperations.s3.amazonaws.com"
               },
               "Action":"sts:AssumeRole"
            }
         ]
      }'
      ```

      ロールの Amazon リソースネーム (ARN) を記録します。ジョブの作成時にこの ARN が必要となります。

   1. 次のコマンド例を使用して、必要なアクセス許可を持つ IAM ポリシーを作成して、前の手順で作成した IAM ロールにアタッチします。必要なアクセス権限の詳細については、「[バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md)」を参照してください。
**注記**  
ディレクトリバケットに対してアクションを実行するバッチオペレーションジョブには、特定のアクセス許可が必要です。詳細については、[S3 Express One Zone 向け AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)」を参照してください。

      このサンプルコマンドを使用するには、`user input placeholders` を次のとおり置き換えます。
      + `S3BatchJobRole` は、IAM ロール名に置き換えます。この名前が以前に使用した名前と一致することを確認します。
      + `PutObjectTaggingBatchJobPolicy` は、IAM ポリシーにつける名前に置き換えます。
      + `amzn-s3-demo-destination-bucket` は、タグを付けるオブジェクトがあるバケット名と置き換えます。
      + *`amzn-s3-demo-manifest-bucket`* は、マニフェストがあるバケットの名前と置き換えます。
      + *`amzn-s3-demo-completion-report-bucket`* は、完了レポートの配信先のバケット名と置き換えます。

      ```
      aws iam put-role-policy \
        --role-name S3BatchJobRole \
        --policy-name PutObjectTaggingBatchJobPolicy \
        --policy-document '{
        "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
        "Statement":[
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObjectTagging",
              "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:GetBucketLocation"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObject",
              "s3:GetBucketLocation"
            ],
            "Resource":[
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*"
            ]
          }
        ]
      }'
      ```

1. 次のコマンド例を使用して、`S3PutObjectTagging` ジョブを作成します。

   `manifest.csv` ファイルは、バケットのリストとオブジェクトキー値を提供します。このジョブは、マニフェストで識別されたオブジェクトに指定されたタグを適用します。`ETag` は `manifest.csv` オブジェクトの ETag であり、Amazon S3 コンソールから取得できます。このリクエストは `no-confirmation-required` パラメータを指定するため、`update-job-status` コマンドで確認しなくてもジョブを実行できます。詳細については、**AWS CLI コマンドリファレンスの「[https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html)」を参照してください。

   このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。*`IAM-role`* を先ほど作成した IAM ロールの ARN に置き換えます。

   ```
   aws s3control create-job \
       --region us-west-2 \
       --account-id acct-id \
       --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"keyOne", "Value":"ValueOne"}] }}' \
       --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \
       --report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket","Prefix":"final-reports", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \
       --priority 42 \
       --role-arn IAM-role \
       --client-request-token $(uuidgen) \
       --description "job description" \
       --no-confirmation-required
   ```

   応答として、Amazon S3 はジョブ ID (など `00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c`) を返します。ジョブの識別、モニタリング、変更にはこのジョブ ID が必要です。

------
#### [ Generate manifest ]

オブジェクトフィルター条件に基づいてマニフェストを自動的に生成する S3 バッチオペレーション `S3DeleteObjectTagging` ジョブを作成する方法は、次の例のとおりです。この条件には、作成日、キー名、サイズ、ストレージクラス、タグが含まれます。

**マニフェストを生成してバッチオペレーション `S3DeleteObjectTagging` ジョブを作成するには**

1. 次のコマンドを使用して AWS Identity and Access Management (IAM) ロールを作成してから、IAM ポリシーを作成してアクセス許可を割り当てます。次のロールとポリシーは、オブジェクト タグを削除するための Amazon S3 アクセス許可を付与します。このアクセス許可は、以降のステップでジョブを作成する際に必要になります。

   1. 

      次のコマンド例を使用して、バッチオペレーションで使用する IAM ロールを作成します。このコマンド例を使用するには、`S3BatchJobRole` をロールにつける名前に置き換えます。

      ```
      aws iam create-role \
       --role-name S3BatchJobRole \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
         "Statement":[
            {
               "Effect":"Allow",
               "Principal":{
                  "Service":"batchoperations.s3.amazonaws.com"
               },
               "Action":"sts:AssumeRole"
            }
         ]
      }'
      ```

      ロールの Amazon リソースネーム (ARN) を記録します。ジョブの作成時にこの ARN が必要となります。

   1. 次のコマンド例を使用して、必要なアクセス許可を持つ IAM ポリシーを作成して、前の手順で作成した IAM ロールにアタッチします。必要なアクセス権限の詳細については、「[バッチオペレーションに対するアクセス許可の付与](batch-ops-iam-role-policies.md)」を参照してください。
**注記**  
ディレクトリバケットに対してアクションを実行するバッチオペレーションジョブには、特定のアクセス許可が必要です。詳細については、[S3 Express One Zone 向け AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)」を参照してください。

      このサンプルコマンドを使用するには、`user input placeholders` を次のとおり置き換えます。
      + `S3BatchJobRole` は、IAM ロール名に置き換えます。この名前が以前に使用した名前と一致することを確認します。
      + `DeleteObjectTaggingBatchJobPolicy` は、IAM ポリシーにつける名前に置き換えます。
      + `amzn-s3-demo-destination-bucket` は、タグを付けるオブジェクトがあるバケット名と置き換えます。
      + `amzn-s3-demo-manifest-bucket` は、マニフェストの保存先バケット名と置き換えます。
      + `amzn-s3-demo-completion-report-bucket` は、完了レポートの配信先のバケット名と置き換えます。

      ```
      aws iam put-role-policy \
        --role-name S3BatchJobRole \
        --policy-name DeleteObjectTaggingBatchJobPolicy \
        --policy-document '{
        "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
        "Statement":[
          {
            "Effect":"Allow",
            "Action":[
              "s3:DeleteObjectTagging",
              "s3:DeleteObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutInventoryConfiguration"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
          },
          {
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:ListBucket"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObject",
              "s3:ListBucket"
            ],
            "Resource":[
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          }
        ]
      }'
      ```

      

1. 次のコマンド例を使用して、`S3DeleteObjectTagging` ジョブを作成します。

   この例では、`--report` セクション内の値によって、生成されるジョブレポートのバケット、プレフィックス、形式、範囲が指定されます。`--manifest-generator` セクションでは、ジョブの対象となるオブジェクトを含むソースバケットに関する情報、ジョブに対して生成されるマニフェスト出力リストに関する情報、マニフェストに含めるオブジェクトの範囲を作成日、名前の制約、サイズ、ストレージクラスによって絞り込むためのフィルター条件を指定します。このコマンドでは、ジョブの優先度、IAM ロール、AWS リージョン も指定します。

   詳細については、**AWS CLI コマンドリファレンスの「[https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html)」を参照してください。

   このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。*`IAM-role`* を先ほど作成した IAM ロールの ARN に置き換えます。

   ```
   aws s3control create-job \
       --account-id 012345678901 \
       --operation '{
           "S3DeleteObjectTagging": {}
       }' \
       --report '{
           "Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
           "Prefix":"reports", 
           "Format":"Report_CSV_20180820",
           "Enabled":true,
           "ReportScope":"AllTasks"
       }' \
       --manifest-generator '{
           "S3JobManifestGenerator": {
             "ExpectedBucketOwner": "012345678901",
             "SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket",
             "EnableManifestOutput": true,
             "ManifestOutputLocation": {
               "ExpectedManifestBucketOwner": "012345678901",
               "Bucket": "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
               "ManifestPrefix": "prefix",
               "ManifestFormat": "S3InventoryReport_CSV_20211130"
             },
             "Filter": {
               "CreatedAfter": "2023-09-01",
               "CreatedBefore": "2023-10-01",
               "KeyNameConstraint": {
                 "MatchAnyPrefix": [
                   "prefix"
                 ],
                 "MatchAnySuffix": [
                   "suffix"
                 ]
               },
               "ObjectSizeGreaterThanBytes": 100,
               "ObjectSizeLessThanBytes": 200,
               "MatchAnyStorageClass": [
                 "STANDARD",
                 "STANDARD_IA"
               ]
             }
           }
         }' \
        --priority 2 \
        --role-arn IAM-role \
        --region us-east-1
   ```

   応答として、Amazon S3 はジョブ ID (など `00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c`) を返します。ジョブの識別、モニタリング、変更にはこのジョブ ID が必要です。

------

### の使用AWS SDK for Java
<a name="batch-ops-examples-java-create-job"></a>

AWS SDK for Java を使用してバッチオペレーションジョブを作成するには、既存のマニフェストを指定するか、マニフェストを自動的に生成するかに応じて、次の 2 つのアプローチのいずれかを選択します。
+ *既存のマニフェストを指定する:* 既存のマニフェストファイルにリストされているオブジェクトを操作する S3 バッチオペレーションジョブ (`S3PutObjectTagging` など) を作成します。このアプローチでは、マニフェストのロケーション、ETag、および形式の仕様を指定する必要があります。
+ *マニフェストを自動的に生成する:* 作成日、キー名、サイズ制約など、オブジェクトフィルター条件に基づいてマニフェストを自動的に生成する S3 バッチオペレーションジョブ (`s3PutObjectCopy` など) を作成します。

どちらのアプローチも S3Control クライアントを使用して、ジョブオペレーション、マニフェスト仕様、ジョブレポート、IAM ロール、および優先度や確認要件などのその他のジョブパラメータを設定します。

AWS SDK for Java を使用して S3 バッチオペレーションジョブを作成する方法の例については、「*Amazon S3 API リファレンス*」の「[Create a batch job to copy objects](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html)」を参照してください。

### REST API の使用
<a name="batch-ops-examples-rest-create-job"></a>

REST API を使用して、バッチ操作ジョブを作成できます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)」を参照してください。

## ジョブのレスポンス
<a name="batch-ops-create-job-response-elements"></a>

`CreateJob` リクエストが成功すると、Amazon S3 はジョブ ID を返します。ジョブ ID は Amazon S3 が自動的に生成する一意の識別子であるため、バッチ操作ジョブを識別してそのステータスを監視できます。

AWS CLI、AWS SDK または REST API を介してジョブを作成する場合、S3 バッチオペレーションを設定してジョブを自動処理を開始できます。ジョブはより高い優先度のジョブを待機せずに、準備が整うと直ちに実行されます。

Amazon S3 コンソールを使用してジョブを作成する際は、バッチオペレーションでジョブの処理を開始する前に、ジョブの詳細を確認し、ジョブを実行できるかを確認する必要があります。ジョブが 30 日以上停止状態のままになると、失敗します。