使用AWS CLI创建AWS Macie作业报错 咨询正确命令写法
报错原因
执行命令返回Unknown options: buckets=[maice-poc]}]是三个核心问题导致的:
- 结构化参数写法不符合JSON规范,键值对错误使用
=连接,标准JSON要求键值对用:分隔 - 结构化参数未做正确的shell转义,大括号、方括号、双引号被shell提前拆分解析,AWS CLI无法识别完整的参数结构,把拆分后的片段识别成了未知参数
- 参数键名书写错误:Macie API规范中账户ID的字段名是
accountId(末尾的d为小写),原命令写为大写D的accountID不符合接口要求
可直接运行的正确命令
方式1:内联参数写法(适合简单场景)
直接把整个结构化参数用单引号包裹,避免shell转义问题,命令如下:
aws macie2 create-classification-job --job-type "ONE_TIME" --name "maice-poc" --s3-job-definition '{"bucketDefinitions":[{"accountId":"254378651398","buckets":["maice-poc"]}]}'
方式2:文件传参写法(推荐,复杂参数无转义问题)
如果后续要调整作业配置(比如加多个桶、加标签、配置采样规则),推荐把结构化参数存在独立JSON文件里,彻底避免转义错误,且全操作系统通用:
- 先在当前目录创建配置文件
macie-job.json,内容如下:
{ "bucketDefinitions": [ { "accountId": "254378651398", "buckets": ["maice-poc"] } ] }
- 执行命令时通过
file://前缀引用配置文件:
aws macie2 create-classification-job --job-type "ONE_TIME" --name "maice-poc" --s3-job-definition file://macie-job.json
注意:执行前请确认当前CLI配置的身份拥有Macie创建作业的权限、目标S3桶的访问权限,且目标桶和账户ID与实际环境匹配。
内容的提问来源于stack exchange,提问作者Nikhil Zutshi
相关产品推荐
相关产品推荐

