首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PowerShell配置用于Azure认知搜索的IP防火墙

使用PowerShell配置用于Azure认知搜索的IP防火墙
EN

Stack Overflow用户
提问于 2020-09-23 18:57:49
回答 2查看 348关注 0票数 0

我试图使用脚本自动添加IP地址到Azure认知搜索IP防火墙。

原因是服务不允许管理某些功能(索引、数据源配置等)。当设置防火墙时,我发现自己删除了所有当前IP地址,对搜索服务进行了所需的更新,然后手动重新添加IP地址(下面是Microsoft文档:为Azure认知搜索配置IP防火墙)。在项目的所有开发人员和App的IP地址之间,这是一个重复执行的非常繁琐的过程。

即使我自己的IP地址包括在防火墙中,我也不能管理某些组件。

查看PowerShell命令,我还没有看到任何自动添加IP地址的方法,甚至还没有查看现有IP地址的列表

那么,如何在PowerShell中做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-24 14:39:33

可以通过powershell Azure搜索CLI命令az search service update更改/更新搜索服务

然而,az search service update目前只支持以下属性的更新:

  • hostingMode
  • id
  • 身份
  • 位置
  • 名字
  • partitionCount
  • provisioningState
  • replicaCount
  • sku
  • 状态
  • statusDetails
  • 标签
  • 类型

正如蔡乔伊提到的,您可以使用REST来管理IP防火墙规则。

您可以从Powershell执行rest查询。下面的脚本添加了IPto搜索服务。

代码语言:javascript
复制
$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,请将主体更新为:

代码语言:javascript
复制
"networkRuleSet": {
      "ipRules": []
    }

查看IP列表。您可以使用GET方法而不是PUT和忽略主体。

在使用上述任何内容之前,您必须获得访问令牌($access_t)。您可以使用多种方法获取令牌。在Powershell中,我最简单的方法如下

代码语言:javascript
复制
az login
$token = az account get-access-token --subscription "<Your Subscription>"
$token = $token | ConvertFrom-Json 
$access_t= $token.accessToken

注:

在执行上述任何步骤之前,您将需要在计算机中使用Az。

要安装和使用AZ,您可以参考这个文章

这是用来获取令牌的,以防您从上面的方法获得令牌。

票数 0
EN

Stack Overflow用户

发布于 2020-09-24 09:19:36

可以使用Azure门户或Management版本2020-03-13配置Azure认知搜索服务上的IP规则。

现在,它是仅支持使用azure门户和管理rest进行配置。。因此,不支持使用PowerShell配置用于Azure认知搜索的IP防火墙

您可以给您的声音蓝色搜索反馈,以促进这一功能的实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64034604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档