S3バッチオペレーションが「The XML you provided was not well-formed or did not validate against our published」で失敗
DEEP_ARCHIVEのオブジェクトの復元ジョブを以下でコマンドで作成したが、ジョブを実行すると全て失敗してエラーになる
aws s3control create-job \
--account-id 12345678901 \
--region ap-northeast-1 \
--operation '{
"S3InitiateRestoreObject": {
"GlacierJobTier": "STANDARD"
}
}' \
--report '{
"Bucket": "arn:aws:s3:::exsample-bucket",
"Format": "Report_CSV_20180820",
"Enabled": true,
"ReportScope": "AllTasks",
"Prefix": "reports"
}' \
--manifest-generator '{
"S3JobManifestGenerator": {
"SourceBucket": "arn:aws:s3:::exsample-bucket",
"EnableManifestOutput": true,
"ManifestOutputLocation": {
"Bucket": "arn:aws:s3:::exsample-bucket",
"ManifestPrefix": "manifests",
"ManifestFormat": "S3InventoryReport_CSV_20211130"
},
"Filter": {
"MatchAnyStorageClass": ["DEEP_ARCHIVE"]
}
}
}' \
--priority 10 \
--role-arn arn:aws:iam::12345678901:role/S3BatchOperationRole \
--client-request-token $(uuidgen) \
--confirmation-required \
--description "Restore request for Intelligent-Tiering objects in Archive Access"
ExpirationInDays
を追加することで解決
aws s3control create-job \
--account-id 12345678901 \
--region ap-northeast-1 \
--operation '{
"S3InitiateRestoreObject": {
"GlacierJobTier": "STANDARD"
"ExpirationInDays": 7 # ここを追加したら成功
}
}' \
ExpirationInDays -> (integer)
この引数は、S3 GlacierまたはS3 Glacier Deep ArchiveオブジェクトがAmazon S3で利用可能な状態を維持する期間を指定します。 S3 GlacierおよびS3 Glacier Deep Archiveオブジェクトを対象とするS3 Initiate Restore Objectジョブは、ExpirationInDaysを1以上に設定する必要があります。 逆に、S3 Intelligent-Tiering Archive AccessおよびDeep Archive Access層のオブジェクトを対象とするS3 Initiate Restore Objectジョブを作成する場合は、ExpirationInDaysを設定しないでください。
S3 Intelligent-Tieringアーカイブアクセス層のオブジェクトはリストア期限切れの対象ではないため、ExpirationInDaysを指定するとリストア要求が失敗します。 S3 Batch Operationsジョブは、S3 GlacierおよびS3 Glacier Deep Archiveストレージクラスオブジェクト、またはS3 Intelligent-TieringアーカイブアクセスおよびDeep Archive Accessストレージ層オブジェクトのいずれかで操作できますが、同じジョブで両方のタイプを操作することはできません。 両方のタイプのオブジェクトをリストアする必要がある場合は、別々のBatch Operationsジョブを作成する必要があります。