我试图使用脚本自动添加IP地址到Azure认知搜索IP防火墙。
原因是服务不允许管理某些功能(索引、数据源配置等)。当设置防火墙时,我发现自己删除了所有当前IP地址,对搜索服务进行了所需的更新,然后手动重新添加IP地址(下面是Microsoft文档:为Azure认知搜索配置IP防火墙)。在项目的所有开发人员和App的IP地址之间,这是一个重复执行的非常繁琐的过程。
即使我自己的IP地址包括在防火墙中,我也不能管理某些组件。
查看PowerShell命令,我还没有看到任何自动添加IP地址的方法,甚至还没有查看现有IP地址的列表
那么,如何在PowerShell中做到这一点呢?
发布于 2020-09-24 14:39:33
可以通过powershell Azure搜索CLI命令az search service update更改/更新搜索服务
然而,az search service update目前只支持以下属性的更新:
正如蔡乔伊提到的,您可以使用REST来管理IP防火墙规则。
您可以从Powershell执行rest查询。下面的脚本添加了IPto搜索服务。
$searchservicename = "<SEARCH SERVICE NAME>"
$resourcegroup = "<RESOURCE GROUP>"
$subscription = "<YOUR SUBSCRIBRION>"
$access= $token.accessToken
$url = "https://management.azure.com/subscriptions/$subscription/resourceGroups/$resourcegroup/providers/Microsoft.Search/searchServices/$searchservicename" + "?api-version=2020-08-01"
$body = '{
"location": "<YOUR REGION>",
"tags": {
"app-name": "<YOUR TAG>"
},
"sku": {
"name": "standard"
},
"properties": {
"replicaCount": 1,
"partitionCount": 1,
"networkRuleSet": {
"ipRules": [
{
"value": "<CIDR IP>"
},
{
"value": "<CIDR IP>"
}
]
},
"hostingMode": "default"
}
}'
$headers = @{'x-ms-client-request-id'=(New-Guid); 'Authorization' ="Bearer $access_t ";'Content-Type' ="application/json"}
Invoke-WebRequest -Uri $url -Body $body -Headers $headers -Method Put若要删除IPRules,请将主体更新为:
"networkRuleSet": {
"ipRules": []
}查看IP列表。您可以使用GET方法而不是PUT和忽略主体。
在使用上述任何内容之前,您必须获得访问令牌($access_t)。您可以使用多种方法获取令牌。在Powershell中,我最简单的方法如下
az login
$token = az account get-access-token --subscription "<Your Subscription>"
$token = $token | ConvertFrom-Json
$access_t= $token.accessToken注:
在执行上述任何步骤之前,您将需要在计算机中使用Az。
要安装和使用AZ,您可以参考这个文章
这是用来获取令牌的,以防您从上面的方法获得令牌。
发布于 2020-09-24 09:19:36
可以使用Azure门户或Management版本2020-03-13配置Azure认知搜索服务上的IP规则。
现在,它是仅支持使用azure门户和管理rest进行配置。。因此,不支持使用PowerShell配置用于Azure认知搜索的IP防火墙。
您可以给您的声音蓝色搜索反馈,以促进这一功能的实现。
https://stackoverflow.com/questions/64034604
复制相似问题