You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用boto3的S3Control创建Amazon S3 Batch任务报Request invalid错误

问题原因与解决方案

核心错误原因

  • 账号ID不一致:代码中AccountId参数填的是71652345619605,但后续RoleArn中的账号ID是716293619605,两个ID不匹配导致请求校验不通过。
  • 输入清单配置错误:Manifest.Spec是定义输入任务清单的格式,你当前填写的Format为S3 Batch Operations的输出报告格式,Fields也填了报告输出的专属字段(如TaskStatus、ErrorCode等),和输入清单的实际格式不匹配。
  • 报告配置缺失必填项且格式错误:Report参数中的Bucket需要填写完整的桶ARN,不能只填桶名,同时你遗漏了必填的Format字段定义报告格式。
  • 可选校验项:如果目标桶未开启Object Lock功能,你配置的ObjectLockMode、ObjectLockRetainUntilDate参数也会触发非法请求。

修复步骤

  1. 统一账号ID,将AccountId修改为和RoleArn一致的716293619605。
  2. 修正输入清单配置:
    • 如果你使用的是S3 Inventory生成的清单作为输入,将Manifest.Spec.Format改为S3Inventory_CSV_20211130,Fields只保留输入清单实际包含的字段(如['Bucket', 'Key', 'VersionId'])。
    • 如果你使用的是自定义CSV清单,Format改为CSV,Fields和你自定义CSV的列顺序对应。
  3. 修正报告配置:
    • 将Report.Bucket改为完整ARN,格式为arn:aws:s3:::你的报告桶名。
    • 新增必填的Format字段,值为Report_CSV_20180820。
  4. 校验IAM角色权限:确认s3BatchOps角色的信任策略允许batchoperations.s3.amazonaws.com服务代入,同时角色有清单桶读权限、目标桶写权限、报告桶写权限。

修正后的核心代码示例

client_control.create_job(
    # 修正为正确的账号ID
    AccountId='716293619605',
    ConfirmationRequired=True,
    Operation={
        'S3PutObjectCopy': {
            'TargetResource': 'arn:aws:s3:::worm-all-bucket-inventory-embark',
            'StorageClass': 'DEEP_ARCHIVE',
            'ObjectLockLegalHoldStatus': 'OFF',
            # 确认目标桶开启了Object Lock再保留以下两个参数,否则删除
            'ObjectLockMode': 'COMPLIANCE',
            'ObjectLockRetainUntilDate': datetime(2115, 1, 1)
        }
    },
    Report={
        # 修正为完整桶ARN
        'Bucket': 'arn:aws:s3:::s3-batch-ops-report',
        'Enabled': True,
        'ReportScope': 'AllTasks',
        # 新增必填的报告格式字段
        'Format': 'Report_CSV_20180820'
    },
    Manifest={
        'Spec': {
            # 按你实际的输入清单格式修改
            'Format': 'S3Inventory_CSV_20211130',
            # 按输入清单实际包含的列填写,和列顺序完全对应
            'Fields': [
                    'Bucket', 'Key', 'VersionId'
            ]
        },
        'Location': {
            'ObjectArn': 'arn:aws:s3:::all-bucket-inventory-embark/agentwidget/2/2021-08-26T00-00Z/manifest.json',
            'ETag': 'fdc154f55282ef570cc9023068a72fc2'
        }
    },
    Priority=10,
    RoleArn='arn:aws:iam::716293619605:role/s3BatchOps'
)

内容的提问来源于stack exchange,提问作者davefogo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:27:02