powershell - Cosmos DB 通过 Azure RM 设置索引策略
问题描述
我正在尝试从 Azure RM powershell 脚本将 Cosmos DB 帐户的索引策略设置为无,但没有运气。
$tableProperties = @{
resource=@{ id=$table; indexingPolicy= @{indexingMode="none"; automatic = "false"; includedPaths = "[]"; excludedPaths = "[]" } };
options=@{ Throughput= 500 }
}
Set-AzureRmResource -ResourceType $tableResourceType `
-ApiVersion $apiVersion -ResourceGroupName $resourceGroupName `
-Name $tableResourceName -PropertyObject $tableProperties -Force
Cosmos DB 中的索引策略节点
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
]
}
更新:尝试:
$containerResourceType = "Microsoft.DocumentDb/databaseAccounts/tables"
$containerName = $destinationStorageName+"/"+ $table
$containerGet = Get-AzResource -ResourceType $containerResourceType `
-ApiVersion $apiVersion -ResourceGroupName $resourceGroupName `
-Name $containerName | Select-Object -ExpandProperty Properties
$containerProperties = @{
"resource"=@{
"id"=$containerGet.resource.id;
"indexingPolicy"=@{"indexingMode"="none"}
}
}
Set-AzResource -ResourceType $containerResourceType `
-ApiVersion $apiVersion -ResourceGroupName $resourceGroupName `
-Name $containerName -PropertyObject $containerProperties -Force
没运气
解决方案
对于索引策略,您只需将 indexingMode 设置为 none。Cosmos 中的子资源也不支持 PATCH,因此对于资源上的任何 PUT,您需要包含已设置的任何其他属性,包括所需的 partitionKey。请参见下面的示例。
更新:此示例使用 AzResource,因为 AzureRM 已被弃用。
$apiVersion="2019-08-01"
$containerResourceType = "Microsoft.DocumentDb/databaseAccounts/sqlDatabases/containers"
$resourceGroupName="myResourceGroup"
$containerName = "mycosmosaccount/myDatabase/myContainer"
$containerGet = Get-AzResource -ResourceType $containerResourceType `
-ApiVersion $apiVersion -ResourceGroupName $resourceGroupName `
-Name $containerName | Select-Object -ExpandProperty Properties
$containerProperties = @{
"resource"=@{
"id"=$containerGet.resource.id;
"partitionKey"=$containerGet.resource.partitionKey;
"indexingPolicy"=@{"indexingMode"="none"}
}
}
Set-AzResource -ResourceType $containerResourceType `
-ApiVersion $apiVersion -ResourceGroupName $resourceGroupName `
-Name $containerName -PropertyObject $containerProperties -Force
推荐阅读
- robotframework - 如何在不使用 python 的情况下处理机器人框架中的动态 webtable
- typescript - @types/react-native 用于 react-native 0.59.x
- asp.net-mvc - 选项 405(不允许的方法)和访问“http://api..”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应不
- typescript - 我想使用箭头函数编写一个 get 和 set 方法
- python-3.x - 如何在 Python 中加速这个嵌套的 for 循环?
- ios - Swift中结构数组的SHA1哈希
- java - SAX:如果 schema 采用 XSD 列表,它将使用哪一个?
- vb.net - 使用 vb.net 将大文件上传到谷歌驱动器
- sql - 无法解决 SELECT 语句中第 2 列的排序规则冲突
- autodesk-forge - Autodesk forge 集成在创建 webhook 时失败,错误 403