你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure DevOps 中通过 Azure Cosmos DB 模拟器生成任务设置 CI/CD 管道
适用对象: NoSQL MongoDB Cassandra Gremlin 表
注意
由于 2022 年 4 月 1 日完全删除了 Windows 2016 托管运行程序,因此不再支持在 Azure DevOps 中将 Azure Cosmos DB 模拟器用于生成任务的方法。 我们正在积极研究替代解决方案。 在此期间,可以按照以下说明来利用使用“windows-2019”代理类型时预安装的 Azure Cosmos DB 模拟器。
为方便进行开发,Azure Cosmos DB 模拟器提供了一个模拟 Azure Cosmos DB 服务的本地环境。 可以利用模拟器在本地开发和测试应用程序,无需创建 Azure 订阅且不会产生任何费用。
适用于模拟器的 PowerShell 任务
启动 Azure Cosmos DB 模拟器的典型的基于 PowerShell 的任务可以按如下所示编写脚本:
作业配置的示例,选择“windows-2019”代理类型。
执行启动模拟器所需的 PowerShell 脚本的任务示例。
# Write your PowerShell commands here.
dir "$env:ProgramFiles\Azure Cosmos DB Emulator\"
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
$startEmulatorCmd = "Start-CosmosDbEmulator -NoFirewall -NoUI"
Write-Host $startEmulatorCmd
Invoke-Expression -Command $startEmulatorCmd
# Pipe an emulator info object to the output stream
$Emulator = Get-Item "$env:ProgramFiles\Azure Cosmos DB Emulator\Microsoft.Azure.Cosmos.Emulator.exe"
$IPAddress = Get-NetIPAddress -AddressFamily IPV4 -AddressState Preferred -PrefixOrigin Manual | Select-Object IPAddress
New-Object PSObject @{
Emulator = $Emulator.BaseName
Version = $Emulator.VersionInfo.ProductVersion
Endpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "https://${_}:8081/" }
MongoDBEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "mongodb://${_}:10255/" }
CassandraEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "tcp://${_}:10350/" }
GremlinEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "http://${_}:8901/" }
TableEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "https://${_}:8902/" }
IPAddress = $IPAddress.IPAddress
}
如果预安装的 Azure Cosmos DB 仿真器并未随附所需代理,还可以选择生成自己的自承载 Windows 代理。 在自承载代理上,可以使用“curl”或“wget”从 https://aka.ms/cosmosdb-emulator 下载最新仿真器的 MSI 包,然后使用“msiexec”进行“静默”安装。 安装后,可以运行与上述脚本类似的 PowerShell 脚本来启动模拟器。
后续步骤
若要详细了解如何将模拟器用于本地开发和测试,请参阅将 Azure Cosmos DB 模拟器用于本地开发和测试。
若要导出模拟器 TLS/SSL 证书,请参阅导出 Azure Cosmos DB 模拟器证书以便与 Java、Python 和 Node.js 配合使用