Проблема с получением connectionString для CosmosDB в Azure

Я следую примеру: https://github.com/Azure-Samples/java-functions-eventhub-cosmosdb

Но когда я пытаюсь получить connectionString с помощью Azure CLI, я получаю следующую ошибку:

COSMOS_DB_CONNECTION_STRING=$( \
    az cosmosdb keys list \
        --resource-group $RESOURCE_GROUP \
        --name $COSMOS_DB_ACCOUNT \
        --type connection-strings \
        --query connectionStrings[0].connectionString \
        --output tsv)

Сообщение об ошибке от az:

no matches found: connectionStrings[0].connectionString

Любая помощь?

Спасибо заранее

az --version
azure-cli                          2.2.0

command-modules-nspkg              2.0.3
core                               2.2.0
nspkg                              3.0.4
telemetry                          1.0.4

Extensions:
azure-cli-iot-ext                  0.8.9
application-insights               0.1.4

Python location '/usr/local/Cellar/azure-cli/2.2.0_1/libexec/bin/python'
Extensions directory '/Users/juan.brena/.azure/cliextensions'

Python (Darwin) 3.8.2 (default, Mar 11 2020, 00:29:50) 
[Clang 11.0.0 (clang-1100.0.33.17)]

Legal docs and information: aka.ms/AzureCliLegal



Your CLI is up-to-date.

Пример отображения текущих строк подключения:

az cosmosdb keys list \                              
  --resource-group $RESOURCE_GROUP \
  --name $COSMOS_DB_ACCOUNT \   
  --type connection-strings  

выход:

{
  "connectionStrings": [
    {
      "connectionString": "AccountEndpoint=xxx",
      "description": "Primary SQL Connection String"
    },
    {
      "connectionString": "AccountEndpoint=xxx",
      "description": "Secondary SQL Connection String"
    },
    {
      "connectionString": "AccountEndpoint=xxx",
      "description": "Primary Read-Only SQL Connection String"
    },
    {
      "connectionString": "AccountEndpoint=xxx",
      "description": "Secondary Read-Only SQL Connection String"
    }
  ]
}

Идея состоит в том, чтобы получить первую строку подключения:

{
  "connectionString": "AccountEndpoint=xxx",
  "description": "Primary SQL Connection String"
}

person jabrena    schedule 24.03.2020    source источник
comment
Я смог выполнить команду без каких-либо проблем. Можете ли вы попробовать запустить свою команду без параметра --query и посмотреть, получаете ли вы какой-либо результат? Попробуйте выполнить следующую команду: az cosmosdb keys list \ --resource-group $RESOURCE_GROUP \ --name $COSMOS_DB_ACCOUNT \ --type connection-strings   -  person Gaurav Mantri    schedule 24.03.2020
comment
У меня это не работает. Ваша команда работает нормально, но проблема в запросе.   -  person jabrena    schedule 24.03.2020
comment
Можете ли вы отредактировать свой вопрос и включить вывод? Очевидно, запутайте имя / ключ учетной записи :). Кроме того, какую версию CLI вы используете?   -  person Gaurav Mantri    schedule 24.03.2020
comment
Спасибо, что поделились подробностями. Это совершенно странно. Я получаю тот же результат, и запрос у меня отлично сработал.   -  person Gaurav Mantri    schedule 24.03.2020
comment
Я полностью согласен с вами, но я не сделал ничего другого в своей установке Azure CLI, но процессор для моего запроса вернул эту ошибку. Я попробую переустановить Azure CLI завтра.   -  person jabrena    schedule 24.03.2020


Ответы (2)


Попробуй это.

RESOURCE_GROUP='myResourceGroup'
COSMOS_DB_ACCOUNT='my-cosmos-account'

COSMOS_DB_CONNECTION_STRING=$(az cosmosdb keys list \
        -g $RESOURCE_GROUP \
        -n $COSMOS_DB_ACCOUNT \
        --type connection-strings \
        --query connectionStrings[0].connectionString \
        --output tsv)

echo $COSMOS_DB_CONNECTION_STRING
person Mark Brown    schedule 24.03.2020
comment
COSMOS_DB_CONNECTION_STRING = $ (список ключей az cosmosdb \ cmdsubst ›-g $ RESOURCE_GROUP \ cmdsubst› -n $ COSMOS_DB_ACCOUNT \ cmdsubst ›--type connection-strings \ cmdsubst› --query connectionStrings [0]. ) zsh: совпадений не найдено: connectionStrings [0] .connectionString - person jabrena; 24.03.2020
comment
Может быть, это что-то с Azure CLI с точки зрения какой-то зависимости? - person jabrena; 24.03.2020
comment
хм, не уверен. Я использовал CloudShell в терминале Microsoft, и он работал нормально. - person Mark Brown; 25.03.2020
comment
Привет, Марк, как ты говоришь, ты тестируешь другой артефакт. В моем случае я тестирую с помощью Azure CLI, а вы тестируете с помощью CloudShell. На мой взгляд, существует возможная проблема в Azure CLI для OSX с зависимостью, используемой для выполнения запроса. Обычное использование команды проходит нормально, но, по моему скромному мнению, в запросе что-то есть. - person jabrena; 25.03.2020
comment
да не уверен. Пробовал то же самое в Ubuntu 18.04 и там тоже работал нормально. - person Mark Brown; 25.03.2020
comment
Да, это что-то странное. Иногда это случается. :) - person jabrena; 25.03.2020
comment
Я только что протестировал с помощью образа Docker Azure CLI, и поведение нормальное. Вывод: у меня проблема с OSX. Спасибо за поддержку - person jabrena; 19.04.2020

У меня была такая же проблема в моем контейнере разработчика ubuntu, и я смог решить ее, заключив запрос в одинарные кавычки:

az cosmosdb keys list \
  --name $ACCOUNTNAME \
  --resource-group $RESOURCEGROUP \
  --type connection-strings \
  --query 'connectionStrings[0].connectionString' \
  --output tsv
person Martin Brandl    schedule 10.11.2020