Azure CLI az functionapp配置应用程序设置-Appsetting中的空间

时间:2019-09-02 20:00:35

标签: bash azure azure-devops azure-functions

我正在使用z functionapp config appsettings来自动创建我的Azure Function设置。我的设置之一是其中带有空格的SQL连接字符串。连接字符串中的空格会导致加载问题,因为每个appsetting都由一个空格分隔。

有人可以告诉我为什么这样做 az functionapp config appsettings set --resource-group“ Test” -n“ rbasxxtest1” --settings Setting1 =“测试值”

但这不是吗? Setting1Value =“测试值” az functionapp config appsettings set-资源组“ AzureOE” -n“ rbasxxtest1” --settings Setting1 = $ Setting1Value

这是我得到的错误 他的命令失败,出现意外错误。这是回溯:

没有足够的值可解压(预期2,得到1) 追溯(最近一次通话):   shell_safe_json_parse中的文件“ /opt/az/lib/python3.6/site-packages/azure/cli/core/util.py”,第244行

谢谢

理查德

2 个答案:

答案 0 :(得分:1)

我需要双引号

Setting1Value =“测试值” 回声SettingValue = $ Setting1Value az functionapp config appsettings set-资源组“ AzureOE” -n“ rbasxxtest1” --settings Setting1 =“ $ Setting1Value”

答案 1 :(得分:0)

一些额外的注意事项,或者那些 - 像我一样 - 在 Git Bash 中的一个字符串变量中有多个应用程序设置,并且这些设置中至少有一个包含空格,不幸的是,单独使用双引号不起作用:

>
# This works:
az webapp config appsettings set --name x --resource-group y --subscription z --settings "ENV_ONE=Test Value" "Env_Two=Foobar"
# --> Success

# This does NOT work:
settings="\"ENV_ONE=Test Value\" \"Env_Two=Foobar\""
az webapp config appsettings set --name x --resource-group y --subscription z --settings $settings
# --> Error: not enough values to unpack (expected 2, got 1)

这显然是因为 bash 处理引号的方式,见

https://docs.microsoft.com/en-us/cli/azure/use-cli-effectively#quoting-issueshttps://github.com/fengzhou-msft/azure-cli/blob/ea149713de505fa0f8ae6bfa5d998e12fc8ff509/doc/use_cli_with_git_bash.md#quoting-issues

对我来说,唯一有帮助的是将整个命令放在一个字符串中,然后用 eval 调用它:

# This works:
settings="\"ENV_ONE=Test Value\" \"Env_Two=Foobar\""
eval "az webapp config appsettings set --name x --resource-group y --subscription z --settings $settings"
# --> Success!!