如何解决这个模棱两可的Azure错误?

问题描述 投票:0回答:1

我正在使用run命令通过RHEL 7 VM中的Azure CLI bash脚本执行bash脚本。

当有一个run命令片段时,我收到一个错误:

   az vm run-command invoke --name ${THIS_VM_NAME} \
            --command-id RunShellScript \
            --resource-group ${RSC_GRP_NAME} \
            --query "output[].message | join('\n\n', @)" \
            --scripts "
cat > /etc/init.d/parity <<'EOF'
${INIT_D_PARITY}
exit 0
EOF

chmod +x /etc/init.d/parity

service parity restart

sleep 5

ls -la /var/log/parity.err
ls -la /var/log/parity.log
ls -la /var/log/parity.node.log

echo '_____________________________________________'
echo 'Parity Error Log:'
tail -n 5 /var/log/parity.err
echo '_____________________________________________'

ls -la /usr/libs/libssl*

parity -v

cat /var/log/parity.node.log | grep -oEi '(enode.*@)' | tail -n 1 | sed 's/enode:\/\///' | sed 's/@.*//' > /etc/parity/enode.pub

ls -la /etc/init.d/parity
ls -la /etc/parity/enode.pub

cat /etc/parity/enode.pub
echo 'Parity is Up an running \o/'
" 

这是错误消息:

在函数join()中,value的值无效:None,期望的:['array-string'],收到:“null”Traceback(最近一次调用last):

bash azure-virtual-machine azure-cli runcommand
1个回答
0
投票

join()是JMESPath的一个函数,它是JSON的查询语言。这是一个简单的例子:

阵:

{
  "locations": [
    {"name": "Seattle", "state": "WA"},
    {"name": "New York", "state": "NY"},
    {"name": "Bellevue", "state": "WA"},
    {"name": "Olympia", "state": "WA"}
  ]
}

查询代码:

locations[?state == 'WA'].name | sort(@) | {WashingtonCities: join(', ', @)}

结果:

{
  "WashingtonCities": "Bellevue, Olympia, Seattle"
}

对于您的问题,您可以从这个link获取详细信息。我认为如果输出是一个数组,那么函数join()将运行良好。如果没有,那么你所得到的错误就会出现。

© www.soinside.com 2019 - 2024. All rights reserved.