我正在尝试使用Azure CLI在Azure Synapse上创建链接服务。我有一个json文件,其中包含链接服务的代码:
{
"name": "LS_dakeyvault",
"properties": {
"annotations": [],
"type": "AzureKeyVault",
"typeProperties": {
"baseUrl": "https://edap-d-kv.vault.azure.net/"
}
}
}
我会在Windows shell中运行以下命令:
az synapse linked-service create --name LS_dakeyvault --file "C:\Project\SynGitTest0\linkedService\LS_dakeyvault.json" --workspace-name edap-d-syn
我会得到这个错误:
Failed to parse JSON: C:\Project\SynGitTest0\linkedService\LS_dakeyvault.json
Error detail: Expecting value: line 1 column 1 (char 0)
The JSON may have been parsed by the shell. See https://learn.microsoft.com/cli/azure/use-cli-effectively#quoting-issues
我在使用其他shell(powershell,bash)时也遇到了同样的问题。
我试着按照MS提供的链接中的指示操作。我不确定我是否明白我应该做什么。我尝试将文件名放在单引号中:
az synapse linked-service create --name LS_dakeyvault --file "'C:\Project\SynGitTest0\linkedService\LS_dakeyvault.json'" --workspace-name edap-d-syn
(我不确定这是报价问题的正确解决方案。)在这种情况下,我会得到一个不同的错误:
string indices must be integers
Traceback (most recent call last):
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 658, in execute
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 721, in _run_jobs_serially
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 692, in _run_job
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 328, in __call__
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 121, in handler
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/synapse/manual/operations/artifacts.py", line
36, in create_or_update_linked_service
TypeError: string indices must be integers
1条答案
按热度按时间gywdnpxw1#
如果您检查Microsoft文档的此Azure Key Vault链接服务部分,则会发现链接服务的JSON文件是正确的,没有问题,如下所示。
所以问题一定出在az命令中的文件路径上。请检查您的命令中的文件路径是否正确。如果您检查
az synapse linked-service create
CLI命令的Required Parameters(必需参数),则会发现-- -file属性可以从JSON文件使用
@{path}
语法或json字符串提供。如果输入正确的路径并在路径的开头添加
@
,则链接服务创建cmdlet可以正常工作。如果您仍然遇到问题,请尝试移动到存储文件的目录并运行命令。我建议阅读azsynapse linked-service和Azure Key Vault文档中的Store凭据以获取更多信息。