【问题标题】:How can I run Azure CLI commands against my local CosmosDB Emulator?如何针对我的本地 CosmosDB 模拟器运行 Azure CLI 命令?
【发布时间】:2020-05-24 04:08:55
【问题描述】:

理想情况下,我希望能够创建一个像 .azcli 这样的脚本,我可以在本地针对 CosmosDB 模拟器运行该脚本,然后在我的 devops 管道中使用相同的脚本将资源插入到 Azure。

这是我当前的 CLI 命令。

部署-cosmos.azcli

az cosmosdb sql database create --name MyDb
                                --throughput 400 
    # This is not correct ->    --account-nameAccountEndpoint=https://localhost:8081/
                                --resource-group my-rg


az cosmosdb collection create --collection-name Users
                              --db-name MyDb

                              [--default-ttl]
                              [--indexing-policy]
                              [--key]
                              [--name]
                              [--partition-key-path]
                              [--resource-group-name]
                              [--subscription]
                              [--throughput]
                              [--url-connection]

我在 Azure CLI 文档中找不到任何提及 CosmosDB 模拟器的内容,而且 CLI 命令本身的参数似乎都无法直接指向模拟器。

https://docs.microsoft.com/en-us/cli/azure/cosmosdb/collection?view=azure-cli-latest

我在谷歌上也没有运气。

我知道我可以在 c# 中与模拟器交互来进行部署,但我希望我可以使用 CLI,因为我更愿意为我的开发环境和测试/生产环境使用相同的部署过程。

【问题讨论】:

  • 如果您编辑您的问题以包含您尝试运行的脚本/命令(或至少是其中的一部分),这将很有帮助。您指的不是很清楚(而且我不熟悉 .azcli 扩展名)。
  • @DavidMakogon .azcli 扩展只是为 VSCode 中的 Azure CLI 命令提供语法高亮。具体来说,它通过Azure CLI Tools 扩展启用。
  • 啊 - 现在您编辑了问题,这更有意义了。我无法发布答案(因为问题已关闭),但请尝试 az cosmosdb database create --key "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==" --db-name "<your-db-name>" --url-connection "https://localhost:8081" - 您会收到一条关于此问题已被弃用的消息,但是......这些参数确实有效。与az cosmosdb collection list 相同。

标签: azure azure-cosmosdb azure-cli


【解决方案1】:

试试:

az cosmosdb database create --key "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==" --db-name "<your-db-name>" --url-connection "https://localhost:8081"

您会收到一条关于此功能已被弃用的消息,但是...这些参数确实有效,并且会导致创建数据库。

我还测试了az cosmosdb collection create(您需要提供--partition-key-path)和az cosmosdb collection list

例如:列出每个集合的集合名称+分区键(通过--query):

az cosmosdb collection list --query "[].{CollectionName:id,PartitionKey:partitionKey}" --key "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==" --db-name "testdb" --url-connection "https://localhost:8081"  -o json

输出:

[
  {
    "CollectionName": "stackoverflow",
    "PartitionKey": {
      "kind": "Hash",
      "paths": [
        "/id"
      ]
    }
  },
  {
    "CollectionName": "testcontainer",
    "PartitionKey": {
      "kind": "Hash",
      "paths": [
        "/id"
      ]
    }
  }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2021-09-11
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多