当前位置: 首页 > 知识库问答 >
问题:

如何在我的本地CosmosDB模拟器上运行Azure CLI命令?

蔡晨
2023-03-14

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

这是我当前的 CLI 命令。

deploy-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最新

我在谷歌上也没有任何运气。

我知道我可以用c#与仿真器交互来进行部署,但是我希望我可以使用CLI,因为我更喜欢对我的开发环境和测试/生产环境使用相同的部署过程。

共有1个答案

壤驷鸿
2023-03-14

尝试:

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

您将收到一条关于此内容已被否决的消息,但是...这些参数确实起作用,并导致数据库被创建。

我还测试了az cosmosdb集合create(您需要提供--disuption-key-path)和az cosmosdb集合列表

例如:列出每个集合的集合名称分区键(通过 --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"
      ]
    }
  }
]
 类似资料:
  • 从PC上的shell中,我可以运行,获得所有已安装软件包的列表。我想在我的Android手机(Nexus 6P)的终端模拟器(目前使用Termux)中本地运行这个和类似的命令。 如果我用打开同一个shell,然后尝试运行,则不会发生任何情况(没有错误,只输出任何内容并重新加载提示)。 如果运行,选项列表将按预期显示。和在这两种环境中是相同的。一个主要区别是从返回“shell”,但从Termux启动

  • 从我电脑上的shell中,我可以运行,并获得所有已安装软件包的列表。我想在我的Android手机(Nexus 6P)上的终端模拟器(目前使用Termux)上本地运行这个和类似的命令。 如果我用打开同一个shell,然后尝试运行,什么都不会发生(没有错误,只是什么都不输出并重新加载提示)。 如果我运行,选项列表将按预期显示。和在两个环境中是相同的。一个主要的区别是从返回shell,但从Termux启

  • 我在我的Win10计算机上安装了Azure CosmosDB模拟器,并且我有启动页面的可见性: 但当我尝试通过Robo3T或命令行连接到数据库时,它不起作用。我使用以下命令: 我得到了以下问题: 2019-07-18T14:33:27.265 0200 W NETWORK[thread1] 5000ms毫秒后连接127.0.0.1:10255失败,放弃。2019-07-18T14:33:27.26

  • 我试图让Cosmos DB模拟器在Docker for Windows上运行,但我没有任何运气。我正在执行这里的命令: https://docs.microsoft.com/en-us/azure/documentdb/documentdb-nosql-local-emulator 明确地: 我从Docker得到各种错误,包括“无效绑定装载”。命令本身似乎不正确,所以我尝试将< code > mo

  • 我正在运行最新版本的Mac OS,我想通过命令行工具运行android模拟器。我在Mac终端上运行了以下命令,得到了以下错误。 我还使用以下可用选项运行命令,这些选项也可以在官方文档developer.android.com上找到 我需要做什么,这样我就不需要每次都打开Android Studio而只打开模拟器。

  • 一个合作者在windows中创建了这个项目,我已经在我的m1 Mac电脑中克隆了它,并尝试在ios模拟器中运行它。这些是我在项目文件夹中执行时的日志。 正在调试模式下在iPhone 12 Pro Max上启动lib/main.dart... 正在运行pod安装...860ms Cocoapods的产出:准备 CocoApods的错误输出: 在iPhone 12 Pro Max上运行pod安装错误启