Справочник по командной строке и PowerShell для эмулятора Windows (локального)
Область применения: Nosql Mongodb Кассандра Гремлин Таблица
Эмулятор Azure Cosmos DB предоставляет локальную среду, которая эмулирует службу Azure Cosmos DB для локальных целей разработки. Выполнив установку эмулятора, вы сможете управлять им с помощью команд в командной строке и PowerShell. В этой статье описывается, как использовать команды в командной строке и PowerShell для запуска и завершения работы эмулятора, настройки параметров и выполнения других операций. Описанные здесь команды нужно выполнять из расположения установки.
Внимание
Эта статья содержит только аргументы командной строки для локального эмулятора Windows.
Синтаксис команд для управления эмулятором
Microsoft.Azure.Cosmos.Emulator.exe
[/Shutdown] [/DataPath] [/Port] [/MongoPort]
[/DirectPorts] [/Key] [/EnableRateLimiting]
[/DisableRateLimiting] [/NoUI] [/NoExplorer]
[/EnableMongoDbEndpoint]
[/?]
Чтобы просмотреть список параметров, введите Microsoft.Azure.Cosmos.Emulator.exe /?
в командной строке.
Параметр | Описание | Пример команды |
---|---|---|
[Нет аргументов] | Запускает эмулятор с параметрами по умолчанию. | Microsoft.Azure.Cosmos.Emulator.exe |
[Справка] | Отображает список поддерживаемых аргументов командной строки. | Microsoft.Azure.Cosmos.Emulator.exe /? |
GetStatus |
Возвращает состояние эмулятора. Каждый код выхода указывает состояние: 1 = запуск,2 = запуск и = 3 остановка. Код выхода с отрицательным значением указывает, что произошла ошибка. Другие выходные данные не формируются. |
Microsoft.Azure.Cosmos.Emulator.exe /GetStatus |
Shutdown |
Завершает работу эмулятора. | Microsoft.Azure.Cosmos.Emulator.exe /Shutdown |
DataPath |
Указывает путь для сохранения файлов данных. Значение по умолчанию — %LocalAppdata%\CosmosDBEmulator . |
Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder |
Port |
Указывает номер порта, который должен использоваться эмулятором. Значение по умолчанию — 8081 . |
Microsoft.Azure.Cosmos.Emulator.exe /Port=65000 |
ComputePort |
Указывает номер порта, используемый для службы шлюза взаимодействия вычислений. Порт пробы конечной точки HTTP шлюза вычисляется как ComputePort + 79 . ComputePort Поэтому и ComputePort + 79 должны быть открытыми и доступными. Значение по умолчанию — 8900 . |
Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100 |
EnableMongoDbEndpoint=3.2 |
Включает API для MongoDB версии 3.2. | Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2 |
EnableMongoDbEndpoint=3.6 |
Включает API для MongoDB версии 3.6. | Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6 |
EnableMongoDbEndpoint=4.0 |
Включает API для MongoDB версии 4.0. | Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0 |
MongoPort |
Указывает номер порта, используемый для API для MongoDB. Значение по умолчанию: 10255 . |
Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200 |
EnableCassandraEndpoint |
Включает API для Apache Cassandra. | Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint |
CassandraPort |
Указывает номер порта, используемый для конечной точки API для конечной точки Cassandra. Значение по умолчанию: 10350 . |
Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300 |
EnableGremlinEndpoint |
Включает API для Apache Gremlin. | Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint |
GremlinPort |
Номер порта, используемый для API для конечной точки Apache Gremlin. Значение по умолчанию: 8901 . |
Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400 |
EnableTableEndpoint |
Включает API для таблицы. | Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint |
TablePort |
Номер порта, используемый для API для конечной точки таблицы. Значение по умолчанию: 8902 . |
Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500 |
KeyFile |
Считывает ключ авторизации из указанного файла. /GenKeyFile Используйте параметр для создания файла ключей. |
Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile |
ResetDataPath |
Рекурсивно удаляет файлы по указанному пути. Если путь не указан, он по умолчанию имеет значение %LOCALAPPDATA%\CosmosDbEmulator . |
Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath |
StartTraces |
Начните собирать журналы трассировки отладки с помощью LOGMAN. | Microsoft.Azure.Cosmos.Emulator.exe /StartTraces |
StopTraces |
Остановите сбор журналов трассировки отладки с помощью LOGMAN. | Microsoft.Azure.Cosmos.Emulator.exe /StopTraces |
StartWprTraces |
Начните собирать журналы трассировки отладки с помощью средства записи производительности Windows. | Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces |
StopWprTraces |
Остановите сбор журналов трассировки отладки с помощью средства записи производительности Windows. | Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces |
FailOnSslCertificateNameMismatch |
По умолчанию эмулятор повторно создает самозаверяющий сертификат TLS/SSL, если san сертификата не включает доменное имя узла эмулятора, локальный IP-адрес (версия 4) localhost и 127.0.0.1 . С помощью этого параметра эмулятор вместо этого завершается сбоем при запуске. Затем следует использовать /GenCert параметр для создания и установки самозаверяющего TLS/SSL-сертификата. |
Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch |
GenCert |
Создает и устанавливает новый самозаверяющий сертификат TLS/SSL-сертификат. При необходимости, включая разделенный запятыми список дополнительных имен доменных имен (DNS) для доступа к эмулятору через сеть. | Microsoft.Azure.Cosmos.Emulator.exe /GenCert |
DirectPorts |
Указывает порты, которые нужно использовать для прямого подключения. Значения по умолчанию: 10251 , 10252 и 10254 10253 . |
Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700 |
Key |
Ключ проверки подлинности для эмулятора. Ключ должен иметь формат 64-разрядного вектора в кодировке Base-64. | Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA== |
EnableRateLimiting |
Указывает, что ограничение частоты запросов включено. | Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting |
DisableRateLimiting |
Указывает, что ограничение частоты запросов отключено. | Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting |
NoUI |
Не отображайте пользовательский интерфейс эмулятора. | Microsoft.Azure.Cosmos.Emulator.exe /NoUI |
NoExplorer |
Скрывает обозреватель данных при запуске. | Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer |
PartitionCount |
Указывает максимальное количество секционированных контейнеров. Дополнительные сведения см. в разделе об изменении количества контейнеров. Значение по умолчанию — 25 . Максимально допустимо 250 . |
Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15 |
DefaultPartitionCount |
Указывает количество секций по умолчанию для секционированного контейнера. Значение по умолчанию — 25 . |
Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50 |
AllowNetworkAccess |
Разрешает доступ к эмулятору по сети. Необходимо также передать /Key=<key_string> или /KeyFile=<file_name> , чтобы включить сетевой доступ. |
Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA== |
NoFirewall |
Не изменяйте правила брандмауэра при /AllowNetworkAccess использовании параметра. |
Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall |
GenKeyFile |
Создает новый ключ авторизации и сохраняет его в указанном файле. Созданный ключ можно использовать с параметрами или /KeyFile параметрами/Key . |
Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile |
Consistency |
Определяет уровень согласованности по умолчанию для учетной записи. Значение по умолчанию — Session. | Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong |
? |
Показывает справочные сообщения. |
Управление эмулятором с помощью командлетов PowerShell
Эмулятор поставляется вместе с модулем PowerShell, который позволяет запускать, останавливать службу и получать сведения о ее состоянии. Выполните следующий командлет, чтобы использовать модуль PowerShell:
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
Или поместите PSModules
каталог в каталог PSModulePath
и импортируйте его, как показано в следующей команде:
$env:PSModulePath += ";$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules"
Import-Module Microsoft.Azure.CosmosDB.Emulator
Ниже приведена сводка команд для управления эмулятором из PowerShell:
Get-CosmosDbEmulatorStatus
Возвращает состояние эмулятора. Возвращает одно из следующих ServiceControllerStatus
значений:
ServiceControllerStatus.StartPending
ServiceControllerStatus.Running
ServiceControllerStatus.Stopped
Если возникла ошибка, значение не возвращается.
Синтаксис
Get-CosmosDbEmulatorStatus
[[-AlternativeInstallLocation] <String>]
[<CommonParameters>]
Параметры
Имя (название) | Тип | Описание |
---|---|---|
AlternativeInstallLocation |
String |
Примеры
Получите состояние эмулятора, установленного в папке
D:\SomeFolder\AzureCosmosDBEmulator
.@parameters = { AlternativeInstallLocation = "D:\SomeFolder\AzureCosmosDBEmulator" } Get-CosmosDbEmulatorStatus @parameters
Start-CosmosDbEmulator
Запускает эмулятор на локальном компьютере. По умолчанию команда ожидает, когда эмулятор будет готов к приему запросов. -NoWait
Используйте этот параметр, если вы хотите, чтобы командлет возвращался сразу после запуска эмулятора. Используйте параметры для указания параметров Start-CosmosDbEmulator
, таких как порт NoSQL, прямой порт и номера портов MongoDB.
Синтаксис
Start-CosmosDbEmulator [-AllowNetworkAccess]
[-AlternativeInstallLocation <String>] [-CassandraPort <UInt16>]
[-ComputePort <UInt16>] [-Consistency <String>] [-Credential
<PSCredential>] [-DataPath <String>] [-DefaultPartitionCount
<UInt16>] [-DirectPort <UInt16[]>] [-EnableMongoDb]
[-EnableCassandra] [-EnableGremlin] [-EnableTable]
[-EnableSqlCompute] [-EnablePreview]
[-FailOnSslCertificateNameMismatch] [-GremlinPort <UInt16>]
[-TablePort <UInt16>] [-SqlComputePort <UInt16>] [-Key <String>]
[-MongoPort <UInt16>] [-MongoApiVersion <String>] [-NoFirewall]
[-NoTelemetry] [-NoUI] [-NoWait] [-PartitionCount <UInt16>] [-Port
<UInt16>] [-SimulateRateLimiting] [-Timeout <UInt32>] [-Trace]
[<CommonParameters>]
Параметры
Имя (название) | Тип | Описание |
---|---|---|
AllowNetworkAccess |
SwitchParameter |
Разрешить доступ со всех IP-адресов, назначенных узлу эмулятора. Необходимо также указать значение ключа или KeyFile, чтобы разрешить сетевой доступ. |
AlternativeInstallLocation |
String |
Альтернативный путь к исполняемому файлу эмулятора. |
CassandraPort |
UInt16 |
Номер порта, используемый для API для Cassandra. По умолчанию используется порт 10350 . |
ComputePort |
UInt16 |
Порт, используемый для службы шлюза взаимодействия с вычислительными ресурсами. Порт пробы конечной точки HTTP шлюза вычисляется как ComputePort + 79 . ComputePort Поэтому и ComputePort + 79 должны быть открытыми и доступными. Порты по умолчанию : 8900 8979 . |
Consistency |
String |
Задает уровень согласованности по умолчанию для эмулятора в значение Session, Strong, Eventual или BoundedStaleness. Уровень по умолчанию — Session. |
Credential |
PSCredential |
Указывает учетную запись пользователя с разрешением на выполнение этого действия. Используйте имя пользователя, например User01 или Domain01\User01 или введите PSCredential объект, например один из командлетов Get-Credential . По умолчанию командлет использует учетные данные текущего пользователя. |
DataPath |
String |
Путь к хранилищу файлов данных. Расположение по умолчанию для файлов $env:LocalAppData\CosmosDbEmulator данных . |
DefaultPartitionCount |
UInt16 |
Количество секций для резервирования для каждой секционированной коллекции. Значение по умолчанию равно 25, которое совпадает со значением по умолчанию общего количества секций. |
DirectPort |
UInt16 |
Список четырех портов, используемых для прямого подключения к серверной части эмулятора. Список по умолчанию : 10251 , 10253 10252 и 10254 . |
EnableMongoDb |
SwitchParameter |
Указывает, что включена конечная точка API для MongoDB. Значение по умолчанию — false. |
EnableCassandra |
SwitchParameter |
Указывает, что api для конечной точки Apache Cassandra включена. Значение по умолчанию — false. |
EnableGremlin |
SwitchParameter |
Указывает, что api для конечной точки Apache Gremlin включена. Значение по умолчанию — false. |
EnableTable |
SwitchParameter |
Указывает, что API для конечной точки таблицы включен. Значение по умолчанию — false. |
EnableSqlCompute |
SwitchParameter |
Указывает, что конечная точка API для NoSQL включена. Значение по умолчанию — false. |
EnablePreview |
SwitchParameter |
Включает функции эмулятора, которые находятся в предварительной версии и не полностью готовы к включению по умолчанию. |
FailOnSslCertificateNameMismatch |
SwitchParameter |
По умолчанию эмулятор повторно создает самозаверяющий сертификат TLS/SSL, если san сертификата не включает доменное имя узла эмулятора, локальный IP-адрес (версия 4) localhost и 127.0.0.1 . Этот параметр приводит к сбою эмулятора при запуске. Затем следует использовать New-CosmosDbEmulatorCertificate параметр для создания и установки самозаверяющего TLS/SSL-сертификата. |
GremlinPort |
UInt16 |
Номер порта, используемый для API для Apache Gremlin. Номер порта по умолчанию.8901 |
TablePort |
UInt16 |
Номер порта, используемый для API для таблицы. Номер порта по умолчанию.8902 |
SqlComputePort |
UInt16 |
Номер порта, используемый для API для NoSQL. Номер порта по умолчанию.8903 |
Key |
String |
Ключ проверки подлинности для эмулятора. Это значение должно быть кодировкой 64 байта 64-байтового вектора. |
MongoPort |
UInt16 |
Номер порта, используемый для API для MongoDB. Номер порта по умолчанию.10250 |
MongoApiVersion |
String |
Указывает версию, используемую для API для MongoDB. Версия по умолчанию — 4.0 . |
NoFirewall |
SwitchParameter |
Указывает, что правила входящего порта не следует добавлять в брандмауэр узла эмулятора. |
NoTelemetry |
SwitchParameter |
Указывает, что командлет не должен собирать данные для текущего сеанса эмулятора. |
NoUI |
SwitchParameter |
Указывает, что командлет не должен представлять значок пользовательского интерфейса или панели задач. |
NoWait |
SwitchParameter |
Указывает, что командлет должен вернуться сразу после начала запуска эмулятора. По умолчанию командлет ожидает завершения запуска, и эмулятор готов получать запросы перед возвратом. |
PartitionCount |
UInt16 |
Общее количество секций, выделенных эмулятором. |
Port |
UInt16 |
Номер порта для службы шлюза эмулятора и веб-интерфейса. Номер порта по умолчанию.8081 |
SimulateRateLimiting |
SwitchParameter |
|
Timeout |
UInt32 |
|
Trace |
SwitchParameter |
Примеры
Запустите эмулятор и дождитесь, пока он не будет готов принять запросы.
Start-CosmosDbEmulator
Запустите эмулятор с 5 секций, зарезервированных для каждой секционированной коллекции. Общее число секций имеет значение по умолчанию: 25. Следовательно, общее количество секционированных коллекций, которые можно создать
5 = 25 partitions / 5 partitions/collection
. Каждая секционированная коллекция ограничена50 GB = 5 partitions * 10 GB / partiton
.@parameters = { DefaultPartitionCount = 5 } Start-CosmosDbEmulator @parameters
Запускает эмулятор с альтернативными номерами портов.
@parameters = { Port = 443 MongoPort = 27017 DirectPort = 20001,20002,20003,20004 } Start-CosmosDbEmulator @parameters
Stop-CosmosDbEmulator
Останавливает работу эмулятора. По умолчанию эта команда ожидает, когда эмулятор окончательно завершит работу. Используйте параметр -NoWait, если командлет должен вернуть результат сразу после перехода эмулятора в автономный режим.
Синтаксис
Stop-CosmosDbEmulator
[[-AlternativeInstallLocation] <String>]
[-NoWait] [[-Timeout] <UInt32>] [-Trace]
[<CommonParameters>]
Параметры
Имя (название) | Тип | Описание |
---|---|---|
AlternativeInstallLocation |
String |
|
Timeout |
UInt32 |
|
NoWait |
SwitchParameter |
Указывает, что командлет должен вернуться сразу после начала завершения работы. |
Trace |
SwitchParameter |
Примеры
@parameters = {
NoWait = $true
}
Stop-CosmosDbEmulator @parameters
Uninstall-CosmosDbEmulator
Удаляет эмулятор и при необходимости удаляет полное содержимое $env:LOCALAPPDATA\CosmosDbEmulator
. Командлет гарантирует остановку работы эмулятора перед удалением.
Синтаксис
Uninstall-CosmosDbEmulator
[-RemoveData]
[<CommonParameters>]
Параметры
Имя (название) | Тип | Описание |
---|---|---|
RemoveData |
SwitchParameter |
Указывает, что командлет должен удалить все данные после удаления эмулятора. |
Примеры
@parameters = {
RemoveData = $false
}
Uninstall-CosmosDbEmulator @parameters
Изменение числа контейнеров по умолчанию
По умолчанию можно создавать до 25 контейнеров фиксированного размера (только с помощью пакетов sdk для разработки программного обеспечения Azure Cosmos DB) или 5 неограниченных контейнеров с помощью эмулятора. Изменив значение PartitionCount , можно создать до 250 контейнеров фиксированного размера или 50 неограниченных контейнеров или любое сочетание двух контейнеров, не превышающих 250 контейнеров фиксированного размера (где один неограниченный контейнер = 5 контейнеров фиксированного размера). Однако мы не рекомендуем настроить эмулятор для запуска с более чем 200 контейнерами фиксированного размера. Дополнительное количество создаваемых ими операций ввода-вывода может привести к непредсказуемым превышениям времени ожидания при использовании API такой конечной точки.
Если вы пытаетесь создать контейнер после превышения текущего количества секций, эмулятор создает исключение ServiceUnavailable с приведенным ниже сообщением.
Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time. We work continuously to bring more and more capacity online, and encourage you to try again.
ActivityId: 12345678-1234-1234-1234-123456789abc
Чтобы изменить количество контейнеров, доступных в эмуляторе, выполните следующие действия.
Удалите все данные локального эмулятора, щелкнув правой кнопкой мыши значок эмулятора в области системы и нажав кнопку "Сбросить данные...".
Удалите все данные эмулятора в папке
%LOCALAPPDATA%\CosmosDBEmulator
.Закройте все открытые экземпляры, щелкнув правой кнопкой мыши значок эмулятора в области системы, а затем нажмите кнопку "Выйти". Для завершения работы всех экземпляров может потребоваться несколько минут.
Запустите эмулятор с флагом PartitionCount, задав значение <= 250 Например:
C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100
.