从 PowerShell 配置 Cosmos DB - Gremlin API 时,是否可以将容量模式设置为无服务器?

When provisioning a Cosmos DB - Gremlin API from PowerShell, is there a way to set the capacity mode to Serverless?

当我从 Azure 门户创建 Cosmos DB - Gremlin API 时,有一个选项可以将容量模式设置为无服务器:

但是,当我查看有关通过 PowerShell 执行相同操作的文档时,我找不到可以执行此操作的内容。

不幸的是,Azure Powershell's New-AzCosmosDBAccount 命令似乎还不支持为 Azure Cosmos DB 帐户设置容量模式(从 Azure PowerShell 版本 6.4.0 开始)。

这些是该命令当前支持的所有参数,none 个适合:

New-AzCosmosDBAccount
   [-EnableAutomaticFailover]
   [-EnableMultipleWriteLocations]
   [-EnableVirtualNetwork]
   [-FromPointInTimeBackup]
   [-ApiKind <String>]
   [-DisableKeyBasedMetadataWriteAccess]
   [-EnableFreeTier <Boolean>]
   [-Location <String[]>]
   [-LocationObject <PSLocation[]>]
   -ResourceGroupName <String>
   -Name <String>
   [-DefaultConsistencyLevel <String>]
   [-IpRule <String[]>]
   [-MaxStalenessIntervalInSeconds <Int32>]
   [-MaxStalenessPrefix <Int32>]
   [-Tag <Hashtable>]
   [-VirtualNetworkRule <String[]>]
   [-VirtualNetworkRuleObject <PSVirtualNetworkRule[]>]
   [-PublicNetworkAccess <String>]
   [-KeyVaultKeyUri <String>]
   [-EnableAnalyticalStorage <Boolean>]
   [-AsJob]
   [-NetworkAclBypass <String>]
   [-NetworkAclBypassResourceId <String[]>]
   [-ServerVersion <String>]
   [-BackupIntervalInMinutes <Int32>]
   [-BackupRetentionIntervalInHours <Int32>]
   [-BackupPolicyType <String>]
   [-AnalyticalStorageSchemaType <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

这是 Azure 的一些人发来的执行此操作的方法:

$resourceGroupName = "my-rg" 
$accountLocation = "Central US"
$accountName = "my-account"
$failoverLocations = @(
     @{ "locationName"="Central US"; "failoverPriority"=0 }
 )
$capabilities= @(@{"name"="EnableServerless"},@{"name"="EnableGremlin"})
$CosmosDBProperties = @{
     "databaseAccountOfferType"="Standard";
     "locations"=$failoverLocations;
     "capabilities"=$capabilities;
 }
New-AzResource -ResourceType "Microsoft.DocumentDb/databaseAccounts" `
     -ApiVersion "2019-12-12" -ResourceGroupName $resourceGroupName `
     -Location $accountLocation -Name $accountName -PropertyObject $CosmosDBProperties

请注意,cmdlet 是 New-AzResource 而不是 New-AzCosmosDBAccount。

对于遇到此问题并迷失在 MS 过时文档页面中的任何其他人,@Diego 在评论中写道。移动到 Azure CLI 并使用命令:

az cosmosdb create --name $databaseName --resource-group $resourcegroup --capabilities EnableServerless --locations regionName=$regionName failoverPriority=0

自 2022 年 3 月起,此功能在仅限 Azure PowerShell 的 CLI 中不可用。