Azure CLI az函数应用程序配置应用程序设置-应用程序设置中的空间

gev0vcfq  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(157)

我正在使用az functionapp config appsettings自动创建我的Azure Function设置。我的设置之一是一个SQL连接字符串,其中有空格。连接字符串中的空格导致加载问题,因为每个应用程序设置都由空格分隔。
有谁能告诉我为什么这会有效吗

az functionapp config appsettings set --resource-group "Test" -n "rbasxxtest1" --settings Setting1='Test Value'

但这个却不是

Setting1Value='Test Value'
az functionapp config appsettings set --resource-group "AzureOE" -n "rbasxxtest1" --settings Setting1=$Setting1Value

这是我得到的错误,命令因意外错误而失败。以下是traceback:
没有足够的值来解压缩(预期为2,得到1)

Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/util.py", line 244, in shell_safe_json_parse
byqmnocz

byqmnocz1#

一些额外的注意事项或那些-像我一样-在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://learn.microsoft.com/en-us/cli/azure/use-cli-effectively#quoting-issues和https://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!!
qgelzfjb

qgelzfjb2#

我需要双引号

Setting1Value="Test Value"
echo SettingValue= $Setting1Value
az functionapp config appsettings set --resource-group "AzureOE" -n "rbasxxtest1" --settings Setting1="$Setting1Value"

相关问题