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:
- Keresési szolgáltatások listázása előfizetésben
- Szolgáltatásinformációk visszaküldése
- Szolgáltatás létrehozása vagy törlése
- Szolgáltatás létrehozása privát végponttal
- Rendszergazdai API-kulcsok újragenerálása
- Lekérdezési API-kulcsok létrehozása vagy törlése
- Vertikális fel- vagy leskálázás replikákkal és partíciókkal
- Megosztott privát kapcsolati erőforrás létrehozása
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-hoz 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 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 -HostingMode
Standard3
á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 PublicNetworkAccess
Disabled
: .
$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 Get
Set
használhatja.
A Get-AzSearchPrivateEndpointConnection 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-AzSearchPrivateEndpointConnection 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-AzSearchPrivateEndpointConnection 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-AzSearchAdminKey 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 primary
secondary
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 primary
secondary
.
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp
Megosztott privát kapcsolati erőforrás létrehozása
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.