Справочник по командной строке и 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и 1025410253. 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 должны быть открытыми и доступными. Порты по умолчанию : 89008979.
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, 1025310252и 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

Чтобы изменить количество контейнеров, доступных в эмуляторе, выполните следующие действия.

  1. Удалите все данные локального эмулятора, щелкнув правой кнопкой мыши значок эмулятора в области системы и нажав кнопку "Сбросить данные...".

  2. Удалите все данные эмулятора в папке %LOCALAPPDATA%\CosmosDBEmulator.

  3. Закройте все открытые экземпляры, щелкнув правой кнопкой мыши значок эмулятора в области системы, а затем нажмите кнопку "Выйти". Для завершения работы всех экземпляров может потребоваться несколько минут.

  4. Установите последнюю версию эмулятора.

  5. Запустите эмулятор с флагом PartitionCount, задав значение <= 250 Например: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

Следующие шаги