在 AWS CLI 中从本地文件加载参数

Load Parameter from Local File in AWS CLI

我正在尝试从 AWS CLI 创建粘合作业。当我在 --name 字段

中使用实际的胶水作业名称时它起作用
aws glue create-job \
    --name my-first-glue-job-cli \
    --role arn:aws:iam::***:role/GlueRole \
    --command file://command.json \
    --region us-east-2 \
    --output json \
    --default-arguments file://arguments.json \
    --glue-version 3.0 \
    --profile ***

但我希望 --name 参数中附加的值从文件中加载,就像 --default-arguments / --command

我理解后两个选项是structure/map类型,--name是字符串类型。我经历了 glue documentation

还经历了 cli documentation 从文件加载参数。他们只提到 json 个用例。

我尝试从我创建的本地 txt 文件中加载值,并将作业名称放入该 txt 文件中。

aws glue create-job \
    --name file://gluejobname.txt \
    --role arn:aws:iam::***:role/GlueRole \
    --command file://command.json \
    --region us-east-2 \
    --output json \
    --default-arguments file://arguments.json \
    --glue-version 3.0 \
    --profile ***

显示的错误是:

An error occurred (ValidationException) when calling the CreateJob operation: 1 validation error detected: Value 'my-first-glue-job-cli
' at 'name' failed to satisfy constraint: Member must satisfy regular expression pattern: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*

cli 将从文件中接受一个标量参数作为 file://gluejobname.txt。使用不加引号的文字,不要换行!

或者,使用 --cli-input-json 标志将所有参数作为单个 JSON 文件传递​​。例如:

# Generate a template (optional):
aws glue get-job --generate-cli-skeleton > params.json
// params.json
{ "JobName": "" }
# pass all params in one file
aws glue get-job --cli-input-json file://params.json