Azure AI-Search szolgáltatás kezelése a PowerShell-lel

Az Azure AI Search létrehozásához és konfigurálásához PowerShell-parancsmagokat és szkripteket futtathat Windowson, Linuxon vagy az Azure Cloud Shellben.

Az Az.Search modullal hajtsa végre a következő feladatokat:

Időnként a fenti listán nem szereplő feladatokkal kapcsolatos kérdéseket is feltenek.

A kiszolgáló nevét, régióját vagy rétegét programozott módon vagy a portálon nem módosíthatja. Egy szolgáltatás létrehozásakor a rendszer dedikált erőforrásokat foglal le. Ezért a mögöttes hardver (hely vagy csomóponttípus) módosítása új szolgáltatást igényel.

Az eszközök és API-k nem használhatók tartalom( például index) átvitelére egyik szolgáltatásból a másikba. A szolgáltatáson belül a tartalom programozott létrehozása a Search Service REST API-val vagy egy SDK-val történik, például az Azure SDK for .NET-en keresztül. Bár nincsenek dedikált parancsok a tartalommigráláshoz, írhat olyan szkriptet, amely meghívja a REST API-t vagy egy ügyféltárat indexek új szolgáltatáson való létrehozásához és betöltéséhez.

Az előzetes verziójú felügyeleti funkciók általában nem érhetők el az Az.Search modulban. Ha előzetes verziójú funkciót szeretne használni, használja a Felügyeleti REST API-t és az előzetes verziójú API-t.

Az Az.Search modul teljes mértékben kiterjeszti az Azure PowerShellt a Search Management REST API-k stabil verzióira.

Verziók ellenőrzése és modulok betöltése

A cikkben szereplő példák interaktívak, és emelt szintű engedélyeket igényelnek. A helyi PowerShellre és az Azure PowerShellre (az Az modulra) van szükség.

A PowerShell verzióellenőrzése

Ha nem rendelkezik vele, telepítse a PowerShell legújabb verzióját.

$PSVersionTable.PSVersion

Az Azure PowerShell betöltése

Ha nem biztos benne, hogy az Az telepítve van-e, futtassa a következő parancsot ellenőrzési lépésként.

Get-InstalledModule -Name Az

Egyes rendszerek nem töltik be automatikusan a modulokat. Ha hiba történt az előző parancson, próbálja meg betölteni a modult, és ha ez nem sikerül, térjen vissza a telepítési Azure PowerShell telepítési útmutatójához , és ellenőrizze, hogy kihagyott-e egy lépést.

Import-Module -Name Az

Csatlakozás az Azure-ba egy böngésző bejelentkezési jogkivonatával

A portál bejelentkezési hitelesítő adataival csatlakozhat egy előfizetéshez a PowerShellben. Azt is megteheti , hogy nem interaktív módon hitelesít egy szolgáltatásnévvel.

Connect-AzAccount

Ha több Azure-előfizetéssel rendelkezik, állítsa be az Azure-előfizetését. Az aktuális előfizetések listájának megtekintéséhez futtassa ezt a parancsot.

Get-AzSubscription | sort SubscriptionName | Select SubscriptionName

Az előfizetés megadásához futtassa a következő parancsot. Az alábbi példában az előfizetés neve .ContosoSubscription

Select-AzSubscription -SubscriptionName ContosoSubscription

Szolgáltatások listázása előfizetésben

Az alábbi parancsok az Az.Resourcestól származnak, és az előfizetésben már kiépített meglévő erőforrásokról és szolgáltatásokról adnak vissza információkat. Ha nem tudja, hogy hány keresési szolgáltatás van már létrehozva, ezek a parancsok visszaadják ezeket az információkat, így a portálra való utazást mentik.

Az első parancs az összes keresési szolgáltatást visszaadja.

Get-AzResource -ResourceType Microsoft.Search/searchServices | ft

A szolgáltatások listájából egy adott erőforrás adatait adja vissza.

Get-AzResource -ResourceName <service-name>

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie.

Name              : my-demo-searchapp
ResourceGroupName : demo-westus
ResourceType      : Microsoft.Search/searchServices
Location          : westus
ResourceId        : /subscriptions/<alphanumeric-subscription-ID>/resourceGroups/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp

Importálása Az.Search

Az Az.Search parancsai csak a modul betöltéséig érhetők el.

Install-Module -Name Az.Search -Scope CurrentUser

Az összes Az.Search parancs listázása

Ellenőrzési lépésként adja vissza a modulban megadott parancsok listáját.

Get-Command -Module Az.Search

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie.

CommandType     Name                                               Version     Source                                                                
-----------     ----                                               -------     ------                                                                
Cmdlet          Get-AzSearchAdminKeyPair                           0.10.0      Az.Search                                                             
Cmdlet          Get-AzSearchPrivateEndpointConnection              0.10.0      Az.Search                                                             
Cmdlet          Get-AzSearchPrivateLinkResource                    0.10.0      Az.Search                                                             
Cmdlet          Get-AzSearchQueryKey                               0.10.0      Az.Search                                                             
Cmdlet          Get-AzSearchService                                0.10.0      Az.Search                                                             
Cmdlet          Get-AzSearchSharedPrivateLinkResource              0.10.0      Az.Search                                                             
Cmdlet          New-AzSearchAdminKey                               0.10.0      Az.Search                                                             
Cmdlet          New-AzSearchQueryKey                               0.10.0      Az.Search                                                             
Cmdlet          New-AzSearchService                                0.10.0      Az.Search                                                             
Cmdlet          New-AzSearchSharedPrivateLinkResource              0.10.0      Az.Search                                                             
Cmdlet          Remove-AzSearchPrivateEndpointConnection           0.10.0      Az.Search                                                             
Cmdlet          Remove-AzSearchQueryKey                            0.10.0      Az.Search                                                             
Cmdlet          Remove-AzSearchService                             0.10.0      Az.Search                                                             
Cmdlet          Remove-AzSearchSharedPrivateLinkResource           0.10.0      Az.Search                                                             
Cmdlet          Set-AzSearchPrivateEndpointConnection              0.10.0      Az.Search                                                             
Cmdlet          Set-AzSearchService                                0.10.0      Az.Search                                                             
Cmdlet          Set-AzSearchSharedPrivateLinkResource              0.10.0      Az.Search   

Ha a csomag régebbi verziójával rendelkezik, frissítse a modult a legújabb funkciók beszerzéséhez.

Update-Module -Name Az.Search

Keresési szolgáltatás adatainak lekérése

Az Az.Search importálása után, és ismeri a keresési szolgáltatást tartalmazó erőforráscsoportot, futtassa a Get-AzSearchService parancsot a szolgáltatásdefiníció visszaadásához, beleértve a nevet, a régiót, a réteget és a replika és a partíciók számát. Ehhez a parancshoz adja meg a keresési szolgáltatást tartalmazó erőforráscsoportot.

Get-AzSearchService -ResourceGroupName <resource-group-name>

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie.

Name              : my-demo-searchapp
ResourceGroupName : demo-westus
ResourceType      : Microsoft.Search/searchServices
Location          : West US
Sku               : Standard
ReplicaCount      : 1
PartitionCount    : 1
HostingMode       : Default
ResourceId        : /subscriptions/<alphanumeric-subscription-ID>/resourceGroups/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp

Szolgáltatás létrehozása vagy törlése

A New-AzSearchService egy új keresési szolgáltatás létrehozásához használható.

New-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name> -Sku "Standard" -Location "West US" -PartitionCount 3 -ReplicaCount 3 -HostingMode Default

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie.

ResourceGroupName : demo-westus
Name              : my-demo-searchapp
Id                : /subscriptions/<alphanumeric-subscription-ID>/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp
Location          : West US
Sku               : Standard
ReplicaCount      : 3
PartitionCount    : 3
HostingMode       : Default
Tags

A Remove-AzSearchService szolgáltatás egy szolgáltatás és annak adatainak törlésére szolgál.

Remove-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name>

A rendszer megkéri, hogy erősítse meg a műveletet.

Confirm
Are you sure you want to remove Search Service 'pstestazuresearch01'?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Szolgáltatás létrehozása IP-szabályokkal

A biztonsági követelményektől függően előfordulhat, hogy egy konfigurált IP-tűzfallal rendelkező keresőszolgáltatást szeretne létrehozni. Ehhez először határozza meg az IP-szabályokat, majd adja át őket a paraméternek az IPRuleList alább látható módon.

$ipRules = @([pscustomobject]@{Value="55.5.63.73"},
		[pscustomobject]@{Value="52.228.215.197"},
		[pscustomobject]@{Value="101.37.221.205"})

 New-AzSearchService -ResourceGroupName <resource-group-name> `
                      -Name <search-service-name> `
                      -Sku Standard `
                      -Location "West US" `
                      -PartitionCount 3 -ReplicaCount 3 `
                      -HostingMode Default `
                      -IPRuleList $ipRules

Szolgáltatás létrehozása rendszer által hozzárendelt felügyelt identitással

Bizonyos esetekben, például amikor felügyelt identitással csatlakozik egy adatforráshoz, be kell kapcsolnia a rendszer által hozzárendelt felügyelt identitást. Ez úgy történik, hogy hozzáadja -IdentityType SystemAssigned a parancsot.

New-AzSearchService -ResourceGroupName <resource-group-name> `
                      -Name <search-service-name> `
                      -Sku Standard `
                      -Location "West US" `
                      -PartitionCount 3 -ReplicaCount 3 `
                      -HostingMode Default `
                      -IdentityType SystemAssigned

S3HD-szolgáltatás létrehozása

S3HD-szolgáltatás létrehozásához a rendszer a szolgáltatások kombinációját -HostingMode-Sku használja. Állítsa be -Sku és -HostingModeStandard3 állítsa be a következőreHighDensity: .

New-AzSearchService -ResourceGroupName <resource-group-name> `
                      -Name <search-service-name> `
                      -Sku Standard3 `
                      -Location "West US" `
                      -PartitionCount 1 -ReplicaCount 3 `
                      -HostingMode HighDensity

Szolgáltatás létrehozása privát végponttal

Az Azure AI Search privát végpontjai lehetővé teszik, hogy egy virtuális hálózaton lévő ügyfél biztonságosan hozzáférjen a keresési indexben lévő adatokhoz privát kapcsolaton keresztül. A privát végpont a keresési szolgáltatás virtuális hálózati címteréből származó IP-címet használ. Az ügyfél és a keresési szolgáltatás közötti hálózati forgalom a virtuális hálózaton keresztül halad át, a Microsoft gerinchálózatán pedig egy privát kapcsolaton keresztül, kiküszöbölve a nyilvános internetről való kitettséget. További információ: Privát végpont létrehozása az Azure AI Search szolgáltatáshoz.

Az alábbi példa bemutatja, hogyan hozhat létre keresési szolgáltatást privát végponttal.

Először helyezzen üzembe egy keresési szolgáltatást a következő beállítással PublicNetworkAccessDisabled: .

$searchService = New-AzSearchService `
    -ResourceGroupName <search-service-resource-group-name> `
    -Name <search-service-name> `
    -Sku Standard `
    -Location "West US" `
    -PartitionCount 1 -ReplicaCount 1 `
    -HostingMode Default `
    -PublicNetworkAccess Disabled

Ezután hozzon létre egy virtuális hálózatot, egy privát hálózati kapcsolatot és a privát végpontot.

# Create the subnet
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
    -Name <subnet-name> `
    -AddressPrefix 10.1.0.0/24 `
    -PrivateEndpointNetworkPolicies Disabled 

# Create the virtual network
$virtualNetwork = New-AzVirtualNetwork `
    -ResourceGroupName <vm-resource-group-name> `
    -Location "West US" `
    -Name <virtual-network-name> `
    -AddressPrefix 10.1.0.0/16 `
    -Subnet $subnetConfig

# Create the private network connection
$privateLinkConnection = New-AzPrivateLinkServiceConnection `
    -Name <private-link-name> `
    -PrivateLinkServiceId $searchService.Id `
    -GroupId searchService

# Create the private endpoint
$privateEndpoint = New-AzPrivateEndpoint `
    -Name <private-endpoint-name> `
    -ResourceGroupName <private-endpoint-resource-group-name> `
    -Location "West US" `
    -Subnet $virtualNetwork.subnets[0] `
    -PrivateLinkServiceConnection $privateLinkConnection

Végül hozzon létre egy privát DNS-zónát.

## Create private dns zone
$zone = New-AzPrivateDnsZone `
    -ResourceGroupName <private-dns-resource-group-name> `
    -Name "privatelink.search.windows.net"

## Create dns network link
$link = New-AzPrivateDnsVirtualNetworkLink `
    -ResourceGroupName <private-dns-link-resource-group-name> `
    -ZoneName "privatelink.search.windows.net" `
    -Name "myLink" `
    -VirtualNetworkId $virtualNetwork.Id

## Create DNS configuration 
$config = New-AzPrivateDnsZoneConfig `
    -Name "privatelink.search.windows.net" `
    -PrivateDnsZoneId $zone.ResourceId

## Create DNS zone group
New-AzPrivateDnsZoneGroup `
    -ResourceGroupName <private-dns-zone-resource-group-name> `
    -PrivateEndpointName <private-endpoint-name> `
    -Name 'myZoneGroup' `
    -PrivateDnsZoneConfig $config

A privát végpontok PowerShellben való létrehozásával kapcsolatos további információkért tekintse meg ezt a Privát hivatkozás rövid útmutatót.

Privátvégpont-kapcsolatok kezelése

A privát végpontkapcsolat létrehozása mellett a kapcsolatot és Remove a kapcsolatot is GetSethasználhatja.

A Get-AzSearchPrivateEndpoint Csatlakozás ion egy privát végpontkapcsolat lekérésére és állapotának megtekintésére szolgál.

Get-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name>

A Set-AzSearchPrivateEndpoint Csatlakozás ion a kapcsolat frissítésére szolgál. Az alábbi példa egy privát végpontkapcsolat elutasítását állítja be:

Set-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name> -Status Rejected  -Description "Rejected"

A Remove-AzSearchPrivateEndpoint Csatlakozás ion a privát végpontkapcsolat törlésére szolgál.

 Remove-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name>

Rendszergazdai kulcsok újragenerálása

A New-AzSearch Rendszergazda Key a rendszergazdai API-kulcsok átgördítésére szolgál. Két rendszergazdai kulcs jön létre minden szolgáltatással a hitelesített hozzáféréshez. Minden kéréshez kulcsokra van szükség. Mindkét rendszergazdai kulcs funkcionálisan egyenértékű, így teljes írási hozzáférést biztosít egy keresési szolgáltatáshoz, amely bármilyen információt lekérhet, vagy bármilyen objektumot létrehozhat és törölhet. Két kulcs létezik, így az egyiket a másik cseréjekor használhatja.

Egyszerre csak egyet lehet újragenerálni, vagy kulcsként primarysecondary megadva. A zavartalan szolgáltatás érdekében ne felejtse el frissíteni az összes ügyfélkódot úgy, hogy egy másodlagos kulcsot használjon az elsődleges kulcs átgördülése közben. Ne módosítsa a kulcsokat a repülés közben.

Ahogy várható volt, ha az ügyfélkód frissítése nélkül hozza létre újra a kulcsokat, a régi kulcsot használó kérések sikertelenek lesznek. Az összes új kulcs újragenerálása nem zárja ki véglegesen a szolgáltatásból, és továbbra is elérheti a szolgáltatást a portálon keresztül. Az elsődleges és másodlagos kulcsok újragenerálása után frissítheti az ügyfélkódot az új kulcsok használatára, és a műveletek ennek megfelelően folytatódnak.

Az API-kulcsok értékeit a szolgáltatás hozza létre. Nem adhat meg egyéni kulcsot az Azure AI Search használatához. Hasonlóképpen, a rendszergazdai API-kulcsoknak nincs felhasználó által definiált neve. A kulcsra mutató hivatkozások rögzített sztringek vagy primarysecondary.

New-AzSearchAdminKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -KeyKind Primary

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie. A rendszer mindkét kulcsot visszaadja, annak ellenére, hogy egyszerre csak egyet módosít.

Primary                    Secondary
-------                    ---------
<alphanumeric-guid>        <alphanumeric-guid>  

Lekérdezési kulcsok létrehozása vagy törlése

A New-AzSearchQueryKey használatával lekérdezési API-kulcsokat hozhat létre az ügyfélalkalmazásokból egy Azure AI Search-indexbe való írásvédett hozzáféréshez. A lekérdezési kulcsok egy adott index hitelesítésére szolgálnak a keresési eredmények lekéréséhez. A lekérdezési kulcsok nem biztosítanak írásvédett hozzáférést a szolgáltatás egyéb elemeihez, például indexhez, adatforráshoz vagy indexelőhöz.

Nem adhat meg kulcsot az Azure AI Search használatához. Az API-kulcsokat a szolgáltatás hozza létre.

New-AzSearchQueryKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <query-key-name> 

Replikák és partíciók méretezése

A Set-AzSearchService a replikák és partíciók növelésére vagy csökkentésére szolgál a szolgáltatáson belüli számlázható erőforrások újraállításához. A replikák vagy partíciók növelése hozzáadja a számlához, amely rögzített és változó díjakkal is rendelkezik. Ha ideiglenesen több feldolgozási teljesítményre van szüksége, növelheti a replikákat és a partíciókat a számítási feladat kezeléséhez. Az Áttekintés portál oldalának figyelési területe csempékkel rendelkezik a lekérdezések késéséről, a másodpercenkénti lekérdezésekről és a szabályozásról, ami azt jelzi, hogy az aktuális kapacitás megfelelő-e.

Eltarthat egy ideig az újbóli beszerzés hozzáadása vagy eltávolítása. A kapacitás módosítása a háttérben történik, ami lehetővé teszi a meglévő számítási feladatok folytatását. A bejövő kérésekhez a rendszer azonnal extra kapacitást használ, és nincs szükség további konfigurációra.

A kapacitás eltávolítása zavaró lehet. Javasoljuk, hogy a kapacitás csökkentése előtt állítsa le az összes indexelő és indexelő feladatot az elvetett kérelmek elkerülése érdekében. Ha ez nem lehetséges, érdemes lehet fokozatosan csökkenteni a kapacitást, egyszerre egy replikát és partíciót, amíg el nem éri az új célszinteket.

A parancs elküldése után nem lehet félúton leállni. A szám módosítása előtt meg kell várnia, amíg a parancs befejeződik.

Set-AzSearchService -ResourceGroupName <search-service-resource-group-name> -Name <search-service-name> -PartitionCount 6 -ReplicaCount 6

Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie.

ResourceGroupName : demo-westus
Name              : my-demo-searchapp
Location          : West US
Sku               : Standard
ReplicaCount      : 6
PartitionCount    : 6
HostingMode       : Default
Id                : /subscriptions/65a1016d-0f67-45d2-b838-b8f373d6d52e/resourceGroups/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp

Az Azure AI Search API-kkal létrehozott biztonságos erőforrások privát végpontjait megosztott privát kapcsolati erőforrásoknak nevezzük. Ennek az az oka, hogy "megosztja" az erőforráshoz való hozzáférést, például egy tárfiókot, amely integrálva van az Azure Private Link szolgáltatással.

Ha indexelővel indexeli az adatokat az Azure AI Searchben, és az adatforrás egy magánhálózaton található, létrehozhat egy kimenő privát végpontkapcsolatot az adatok eléréséhez.

Itt található az Azure-erőforrások teljes listája, amelyhez kimenő privát végpontokat hozhat létre az Azure AI Searchből a kapcsolódó csoportazonosító értékekkel együtt.

A New-AzSearchSharedPrivateLinkResource a megosztott privát kapcsolati erőforrás létrehozásához használható. Ne feledje, hogy a parancs futtatása előtt szükség lehet némi konfigurációra az adatforráshoz.

New-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-serviceresource-group-name> -ServiceName <search-service-name> -Name <spl-name> -PrivateLinkResourceId /subscriptions/<alphanumeric-subscription-ID>/resourceGroups/<storage-resource-group-name>/providers/Microsoft.Storage/storageAccounts/myBlobStorage -GroupId <group-id> -RequestMessage "Please approve" 

A Get-AzSearchSharedPrivateLinkResource lehetővé teszi a megosztott privát kapcsolat erőforrásainak lekérését és állapotuk megtekintését.

Get-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name>

Használat előtt jóvá kell hagynia a kapcsolatot a következő paranccsal.

Approve-AzPrivateEndpointConnection `
    -Name <spl-name> `
    -ServiceName <search-service-name> `
    -ResourceGroupName <search-service-resource-group-name> `
    -Description = "Approved"

A Remove-AzSearchSharedPrivateLinkResource a megosztott privát kapcsolat erőforrásának törlésére szolgál.

$job = Remove-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name> -Force -AsJob

$job | Get-Job

A megosztott privát kapcsolat erőforrásainak beállításával kapcsolatos részletes információkért tekintse meg az indexelő kapcsolatok privát végponton keresztüli létrehozásáról szóló dokumentációt.

Következő lépések

Index létrehozása, index lekérdezése a portál, a REST API-k vagy a .NET SDK használatával.