如何在AWSCLI查询中使用CLI变量

cos*_*r11 4 bash aws-cli

如何在AWS查询中使用变量?

似乎没有关于查询语法的文档,仅是示例。

我正在尝试执行以下操作:

API_ID=$(aws apigateway get-rest-apis --query 'items[?name == `${API_NAME}`] | [0].{id: id}' --output text)
Run Code Online (Sandbox Code Playgroud)

问题在于$ {API_NAME}是按字面读取的。有任何想法吗?

cos*_*r11 6

一段时间后我想通了...

AWS使用JMESPath作为其--query选项的规范。当将jmespath过滤器表达式作为字符串传递时:

您可以使用双引号(“)代替,并将变量包装在单引号(')中。这不会阻止变量被替换。

所以当我将其更改为:

API_ID=$(aws apigateway get-rest-apis --query "items[?name == '${API_NAME}'] | [0].{id: id}" --output text) 
Run Code Online (Sandbox Code Playgroud)