Tom*_*omH 9 bash aws-cli jmespath
使用简单的aws cli查询来检查是否存在Lambda函数并回显相关角色(如果存在):
#!/bin/bash
fname=$1
role=$(aws lambda list-functions --query 'Functions[?FunctionName == `$fname`].Role' --output text)
echo "$fname role: $role"
Run Code Online (Sandbox Code Playgroud)
但是,$ fname似乎正在解析为aws命令中的空字符串.我试图逃避后面的嘀嗒声,交换`到'以及其他捶打编辑的镜像(是的,我在调用脚本时在cl上传递一个字符串:)
如何在bash脚本中将变量正确传递给JMESPath查询?
jam*_*sls 17
因为整个JMESPath表达式用单引号括起来,所以bash不会扩展$fname变量.要解决此问题,您可以使用双引号括起值,然后对var 使用单引号(原始字符串文字)$fname:
aws lambda list-functions --query "Functions[?FunctionName == '$fname'].Role" --output text
Run Code Online (Sandbox Code Playgroud)
将反引号交换为单引号,对我不起作用... :(
但是逃避反引号是有效的:)
这是我的输出:
aws elbv2 describe-listeners --load-balancer-arn $ELB_ARN --query "Listeners[?Port == '$PORT'].DefaultActions[].TargetGroupArn | [0]"
Run Code Online (Sandbox Code Playgroud)
空值
aws elbv2 describe-listeners --load-balancer-arn $ELB_ARN --query "Listeners[?Port == \`$PORT\`].DefaultActions[].TargetGroupArn | [0]"
Run Code Online (Sandbox Code Playgroud)
“arn:aws:elasticloadbalancing:ap-southeast-2:1234567:targetgroup/xxx”
| 归档时间: |
|
| 查看次数: |
5055 次 |
| 最近记录: |