Referensi baris perintah dan PowerShell untuk emulator Windows (lokal)

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Emulator Azure Cosmos DB menyediakan lingkungan lokal yang meniru layanan Azure Cosmos DB untuk tujuan pengembangan lokal. Setelah menginstal emulator,Anda dapat mengontrol emulator dengan baris perintah dan perintah PowerShell. Artikel ini menjelaskan cara menggunakan perintah baris perintah dan PowerShell untuk memulai dan menghentikan emulator, mengonfigurasi opsi, dan melakukan operasi lainnya. Anda harus menjalankan perintah dari lokasi pemasangan.

Penting

Artikel ini hanya menyertakan argumen baris perintah untuk emulator lokal Windows.

Mengelola emulator dengan sintaks baris perintah

Microsoft.Azure.Cosmos.Emulator.exe 
    [/Shutdown] [/DataPath] [/Port] [/MongoPort] 
    [/DirectPorts] [/Key] [/EnableRateLimiting] 
    [/DisableRateLimiting] [/NoUI] [/NoExplorer] 
    [/EnableMongoDbEndpoint] 
    [/?]

Untuk melihat daftar parameter, ketik Microsoft.Azure.Cosmos.Emulator.exe /? di prompt perintah.

Parameter Deskripsi Contoh Perintah
[Tidak ada argumen] Memulai emulator dengan pengaturan default. Microsoft.Azure.Cosmos.Emulator.exe
[Bantuan] Menampilkan daftar argumen baris perintah yang didukung. Microsoft.Azure.Cosmos.Emulator.exe /?
GetStatus Mendapatkan status emulator. Setiap kode keluar menunjukkan status: 1 = Memulai, 2 = Menjalankan, dan 3 = Berhenti. Kode keluar negatif menunjukkan bahwa terjadi kesalahan. Tidak ada output lain yang diproduksi. Microsoft.Azure.Cosmos.Emulator.exe /GetStatus
Shutdown Mematikan emulator. Microsoft.Azure.Cosmos.Emulator.exe /Shutdown
DataPath Menentukan jalur untuk menyimpan file data. Nilai defaultnya adalah %LocalAppdata%\CosmosDBEmulator. Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder
Port Menentukan nomor port yang akan digunakan untuk emulator. Nilai defaultnya adalah 8081. Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
ComputePort Menentukan nomor port yang akan digunakan untuk layanan gateway interop komputasi. Port probe titik akhir HTTP gateway dihitung sebagai ComputePort + 79. Oleh karena itu, ComputePort dan ComputePort + 79 harus terbuka dan tersedia. Nilai defaultnya adalah 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Mengaktifkan API untuk MongoDB versi 3.2. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Mengaktifkan API untuk MongoDB versi 3.6. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Mengaktifkan API untuk MongoDB versi 4.0. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Menentukan nomor port yang akan digunakan untuk API untuk MongoDB. Nilai defaultnya adalah 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Mengaktifkan API untuk Apache Cassandra. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Menentukan nomor port yang akan digunakan untuk API untuk titik akhir Cassandra. Nilai defaultnya adalah 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Mengaktifkan API untuk Apache Gremlin. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort Nomor port yang digunakan untuk API untuk Titik Akhir Apache Gremlin. Nilai defaultnya adalah 8901. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint Mengaktifkan API untuk Tabel. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort Nomor port yang akan digunakan untuk API untuk Titik Akhir Tabel. Nilai defaultnya adalah 8902. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile Baca kunci otorisasi dari file yang ditentukan. /GenKeyFile Gunakan opsi untuk menghasilkan keyfile. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath Secara rekursif menghapus semua file dalam jalur yang ditentukan. Jika Anda tidak menentukan jalur, jalur defaultnya adalah %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Mulai kumpulkan log jejak debug menggunakan LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Berhenti mengumpulkan log jejak debug menggunakan LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Mulai mengumpulkan log jejak debug menggunakan alat Perekaman Performa Windows . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Berhenti mengumpulkan log jejak debug menggunakan alat Perekaman Performa Windows . Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch Secara default emulator meregenerasi sertifikat TLS/SSL yang ditandatangani sendiri, jika SAN sertifikat tidak menyertakan nama domain host emulator, alamat IP lokal (v4), localhost, dan 127.0.0.1. Dengan opsi ini, emulator akan gagal saat startup. Anda kemudian harus menggunakan /GenCert opsi untuk membuat dan menginstal sertifikat TLS/SSL baru yang ditandatangani sendiri. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert Hasilkan dan instal sertifikat TLS/SSL baru yang ditandatangani sendiri. secara opsional termasuk daftar nama DNS tambahan yang dipisahkan koma untuk mengakses emulator melalui jaringan. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts Menentukan port yang akan digunakan untuk konektivitas langsung. Defaultnya adalah 10251, 10252, 10253, dan 10254. Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700
Key Kunci otorisasi untuk emulator. Kunci harus berupa pengkodean basis-64 dari vektor 64-byte. Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
EnableRateLimiting Menentukan bahwa perilaku pembatasan tarif permintaan diaktifkan. Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting
DisableRateLimiting Menentukan bahwa perilaku pembatasan tarif permintaan diaktifkan. Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting
NoUI Jangan tampilkan antarmuka pengguna emulator. Microsoft.Azure.Cosmos.Emulator.exe /NoUI
NoExplorer Jangan perlihatkan penjelajah data saat mulai. Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer
PartitionCount Menentukan jumlah maksimum kontainer yang dipartisi. Untuk informasi selengkapnya, lihat mengubah jumlah kontainer. Nilai defaultnya adalah 25. Maksimum yang diizinkan adalah 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount Menentukan jumlah default partisi untuk kontainer yang dipartisi. Nilai defaultnya adalah 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess Memungkinkan akses ke emulator melalui jaringan. Anda juga harus meneruskan /Key=<key_string> atau /KeyFile=<file_name> untuk mengaktifkan akses jaringan. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall Jangan sesuaikan aturan firewall saat /AllowNetworkAccess opsi digunakan. Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall
GenKeyFile Buat kunci otorisasi baru dan simpan ke file yang ditentukan. Kunci yang dihasilkan dapat digunakan dengan /Key opsi atau /KeyFile . Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile
Consistency Atur tingkat konsistensi default untuk akun tersebut. Nilai defaultnya adalah Sesi. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? Perlihatkan pesan bantuan.

Mengelola emulator dengan cmdlet PowerShell

Emulator dilengkapi dengan modul PowerShell untuk memulai, menghentikan, menghapus instalasi, dan mengambil status layanan. Jalankan cmdlet berikut menggunakan modul PowerShell:

Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"

atau tempatkan PSModules direktori pada AndaPSModulePath dan impor seperti yang ditunjukkan dalam perintah berikut:

$env:PSModulePath += ";$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules"
Import-Module Microsoft.Azure.CosmosDB.Emulator

Berikut adalah ringkasan perintah untuk mengontrol emulator dari PowerShell:

Get-CosmosDbEmulatorStatus

Mendapatkan status emulator. Mengembalikan salah satu nilai ini ServiceControllerStatus :

  • ServiceControllerStatus.StartPending
  • ServiceControllerStatus.Running
  • ServiceControllerStatus.Stopped

Jika terjadi kesalahan, tidak ada nilai yang dikembalikan.

Sintaks

Get-CosmosDbEmulatorStatus 
    [[-AlternativeInstallLocation] <String>] 
    [<CommonParameters>]

Parameter

Nama Jenis Deskripsi
AlternativeInstallLocation String

Contoh

  • Dapatkan status emulator yang diinstal di D:\SomeFolder\AzureCosmosDBEmulator folder .

    @parameters = {
        AlternativeInstallLocation = "D:\SomeFolder\AzureCosmosDBEmulator"
    }
    Get-CosmosDbEmulatorStatus @parameters
    

Start-CosmosDbEmulator

Memulai emulator di komputer lokal. Secara default, perintah menunggu hingga emulator siap menerima permintaan. -NoWait Gunakan opsi , jika Anda ingin cmdlet kembali segera setelah memulai emulator. Gunakan parameter Start-CosmosDbEmulator untuk menentukan opsi, seperti port NoSQL, port langsung, dan nomor port MongoDB.

Sintaks

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>]

Parameter

Nama Jenis Deskripsi
AllowNetworkAccess SwitchParameter Izinkan akses dari semua Alamat IP yang ditetapkan ke host emulator. Anda juga harus menentukan nilai untuk Key atau KeyFile untuk mengizinkan akses jaringan.
AlternativeInstallLocation String Jalur lokasi alternatif ke emulator yang dapat dieksekusi.
CassandraPort UInt16 Nomor port yang digunakan untuk API untuk Cassandra. Port default adalah 10350.
ComputePort UInt16 Port yang digunakan untuk layanan gateway interop komputasi. Port pemeriksaan titik akhir HTTP gateway dihitung sebagai ComputePort + 79. Oleh karena itu, ComputePort dan ComputePort + 79 harus terbuka dan tersedia. Port defaultnya adalah 8900, 8979.
Consistency String Mengatur tingkat konsistensi default untuk emulator ke Sesi, Kuat, Akhirnya, atau BoundedStaleness. Tingkat defaultnya adalah Sesi.
Credential PSCredential Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Gunakan nama pengguna, seperti User01 atau Domain01\User01, atau masukkan PSCredential objek, seperti dari Get-Credential cmdlet . Secara default, cmdlet menggunakan kredensial pengguna saat ini.
DataPath String Jalur untuk menyimpan file data. Lokasi default untuk file data adalah $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 Jumlah partisi yang akan dicadangkan per koleksi yang dipartisi. Defaultnya adalah 25, yang sama dengan nilai default dari jumlah partisi total.
DirectPort UInt16 Daftar empat port yang akan digunakan untuk konektivitas langsung ke backend emulator. Daftar defaultnya adalah 10251, , 1025310252, dan 10254.
EnableMongoDb SwitchParameter Menentukan bahwa API untuk titik akhir MongoDB diaktifkan. Defaultnya adalah false.
EnableCassandra SwitchParameter Menentukan bahwa API untuk titik akhir Apache Cassandra diaktifkan. Defaultnya adalah false.
EnableGremlin SwitchParameter Menentukan bahwa API untuk titik akhir Apache Gremlin diaktifkan. Defaultnya adalah false.
EnableTable SwitchParameter Menentukan bahwa API untuk titik akhir Tabel diaktifkan. Defaultnya adalah false.
EnableSqlCompute SwitchParameter Menentukan bahwa API untuk titik akhir NoSQL diaktifkan. Defaultnya adalah false.
EnablePreview SwitchParameter Memungkinkan fitur emulator yang dalam pratinjau dan tidak sepenuhnya matang untuk aktif secara default.
FailOnSslCertificateNameMismatch SwitchParameter Secara default emulator meregenerasi sertifikat TLS/SSL yang ditandatangani sendiri, jika SAN sertifikat tidak menyertakan nama domain host emulator, alamat IP lokal (v4), localhost, dan 127.0.0.1. Opsi ini menyebabkan emulator gagal saat startup sebagai gantinya. Anda kemudian harus menggunakan New-CosmosDbEmulatorCertificate opsi untuk membuat dan menginstal sertifikat TLS/SSL baru yang ditandatangani sendiri.
GremlinPort UInt16 Nomor port yang digunakan untuk API untuk Apache Gremlin. Nomor port default adalah 8901.
TablePort UInt16 Nomor port yang digunakan untuk API untuk Tabel. Nomor port default adalah 8902.
SqlComputePort UInt16 Nomor port yang digunakan untuk API untuk NoSQL. Nomor port default adalah 8903.
Key String Kunci otorisasi untuk emulator. Nilai ini harus merupakan pengodean dasar 64 dari vektor 64 byte.
MongoPort UInt16 Nomor port yang digunakan untuk API untuk MongoDB. Nomor port default adalah 10250.
MongoApiVersion String Menentukan versi mana yang akan digunakan untuk API untuk MongoDB. Versi defaultnya adalah 4.0.
NoFirewall SwitchParameter Menentukan bahwa tidak ada aturan port masuk yang harus ditambahkan ke firewall host emulator.
NoTelemetry SwitchParameter Menentukan bahwa cmdlet tidak boleh mengumpulkan data untuk sesi emulator saat ini.
NoUI SwitchParameter Menentukan bahwa cmdlet tidak boleh menyajikan antarmuka pengguna atau ikon bilah tugas.
NoWait SwitchParameter Menentukan bahwa cmdlet harus kembali segera setelah emulator mulai dimulai. Secara default cmdlet menunggu hingga startup selesai dan emulator siap menerima permintaan sebelum kembali.
PartitionCount UInt16 Jumlah total partisi yang dialokasikan oleh emulator.
Port UInt16 Nomor port untuk Gateway Service emulator dan UI Web. Nomor port default adalah 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

Contoh

  • Mulai emulator dan tunggu hingga sepenuhnya dimulai dan siap menerima permintaan.

    Start-CosmosDbEmulator
    
  • Mulai emulator dengan 5 partisi yang disediakan untuk setiap koleksi yang dipartisi. Jumlah total partisi diatur ke default: 25. Oleh karena itu, jumlah total koleksi yang dipartisi yang dapat dibuat adalah 5 = 25 partitions / 5 partitions/collection. Setiap koleksi yang dipartisi dibatasi di 50 GB = 5 partitions * 10 GB / partiton.

    @parameters = {
        DefaultPartitionCount = 5
    }
    Start-CosmosDbEmulator @parameters
    
  • Memulai emulator dengan nomor port alternatif.

    @parameters = {
        Port = 443 
        MongoPort = 27017 
        DirectPort = 20001,20002,20003,20004
    }
    Start-CosmosDbEmulator @parameters
    

Stop-CosmosDbEmulator

Menghentikan emulator. Secara default, perintah ini menunggu hingga emulator sepenuhnya dimatikan. Gunakan opsi -NoWait, jika Anda ingin cmdlet kembali segera setelah mulai mematikan emulator.

Sintaks

Stop-CosmosDbEmulator 
    [[-AlternativeInstallLocation] <String>]
    [-NoWait] [[-Timeout] <UInt32>] [-Trace] 
    [<CommonParameters>]

Parameter

Nama Jenis Deskripsi
AlternativeInstallLocation String
Timeout UInt32
NoWait SwitchParameter Menentukan bahwa cmdlet harus kembali segera setelah pematian dimulai.
Trace SwitchParameter

Contoh

@parameters = {
    NoWait = $true
}
Stop-CosmosDbEmulator @parameters

Uninstall-CosmosDbEmulator

Menghapus instalan emulator dan secara opsional menghapus konten $env:LOCALAPPDATA\CosmosDbEmulatorlengkap . Cmdlet memastikan emulator dihentikan sebelum menghapus instalasinya.

Sintaks

Uninstall-CosmosDbEmulator 
    [-RemoveData] 
    [<CommonParameters>]

Parameter

Nama Jenis Deskripsi
RemoveData SwitchParameter Menentukan bahwa cmdlet harus menghapus semua data setelah menghapus emulator.

Contoh

@parameters = {
    RemoveData = $false
}
Uninstall-CosmosDbEmulator @parameters

Mengubah jumlah kontainer default

Secara default, Anda dapat membuat hingga 25 kontainer ukuran tetap (hanya didukung menggunakan Azure Cosmos DB SDK), atau 5 kontainer tak terbatas menggunakan emulator. Dengan memodifikasi nilai PartitionCount , Anda dapat membuat hingga 250 kontainer ukuran tetap atau 50 kontainer tak terbatas, atau kombinasi apa pun dari keduanya yang tidak melebihi 250 kontainer ukuran tetap (di mana satu kontainer tak terbatas = 5 kontainer ukuran tetap). Namun tidak disarankan untuk menyiapkan emulator untuk dijalankan dengan lebih dari 200 kontainer ukuran tetap. Karena overhead yang ditambahkan ke operasi IO disk, yang menghasilkan batas waktu yang tidak dapat diprediksi saat menggunakan API titik akhir.

Jika Anda mencoba membuat kontainer setelah jumlah partisi saat ini terlampaui, emulator akan memberikan pengecualian ServiceUnavailable, dengan pesan berikut.

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

Untuk mengubah jumlah kontainer yang tersedia di emulator, jalankan langkah-langkah berikut:

  1. Hapus semua data emulator lokal dengan mengklik kanan ikon emulator pada baki sistem, lalu klik Reset Data....

  2. Hapus semua data emulator di folder %LOCALAPPDATA%\CosmosDBEmulator ini.

  3. Keluar dari semua instans yang terbuka dengan mengklik kanan ikon emulator pada baki sistem, lalu klik Keluar. Mungkin perlu waktu satu menit agar semua instans keluar.

  4. Instal versi terbaru emulator.

  5. Luncurkan emulator dengan flag PartitionCount dengan menetapkan nilai <= 250. Contoh: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

Langkah berikutnya