Zarządzanie usługą Azure AI usługa wyszukiwania przy użyciu programu PowerShell
Możesz uruchamiać polecenia cmdlet i skrypty programu PowerShell w systemie Windows, Linux lub w usłudze Azure Cloud Shell, aby utworzyć i skonfigurować usługę Azure AI Search.
Użyj modułu Az.Search, aby wykonać następujące zadania:
- Wyświetlanie listy usług wyszukiwania w subskrypcji
- Zwracanie informacji o usłudze
- Tworzenie lub usuwanie usługi
- Tworzenie usługi z prywatnym punktem końcowym
- Ponowne generowanie kluczy interfejsu API administratora
- Tworzenie lub usuwanie kluczy interfejsu API zapytań
- Skalowanie w górę lub w dół przy użyciu replik i partycji
- Tworzenie udostępnionego zasobu łącza prywatnego
Od czasu do czasu są zadawane pytania dotyczące zadań , które nie znajdują się na powyższej liście.
Nie można programowo ani programowo zmienić nazwy serwera, regionu ani warstwy. Dedykowane zasoby są przydzielane podczas tworzenia usługi. W związku z tym zmiana podstawowego sprzętu (lokalizacji lub typu węzła) wymaga nowej usługi.
Nie można użyć narzędzi ani interfejsów API do transferu zawartości, takiej jak indeks, z jednej usługi do innej. W ramach usługi programowe tworzenie zawartości odbywa się za pomocą interfejsu API REST usługi wyszukiwania lub zestawu SDK, takiego jak zestaw Azure SDK dla platformy .NET. Chociaż nie ma dedykowanych poleceń migracji zawartości, możesz napisać skrypt wywołujący interfejs API REST lub bibliotekę klienta w celu tworzenia i ładowania indeksów w nowej usłudze.
Funkcje administracji w wersji zapoznawczej są zwykle niedostępne w module Az.Search . Jeśli chcesz użyć funkcji w wersji zapoznawczej, użyj interfejsu API REST zarządzania i wersji zapoznawczej interfejsu API .
Moduł Az.Search rozszerza program Azure PowerShell z pełną parzystością na stabilne wersje interfejsów API REST zarządzania wyszukiwaniem.
Sprawdzanie wersji i ładowanie modułów
Przykłady w tym artykule są interaktywne i wymagają podwyższonych uprawnień. Wymagany jest lokalny program PowerShell i program Azure PowerShell ( moduł Az ).
Sprawdzanie wersji programu PowerShell
Zainstaluj najnowszą wersję programu PowerShell , jeśli jej nie masz.
$PSVersionTable.PSVersion
Ładowanie programu Azure PowerShell
Jeśli nie masz pewności, czy moduł Az jest zainstalowany, uruchom następujące polecenie jako krok weryfikacji.
Get-InstalledModule -Name Az
Niektóre systemy nie ładują automatycznie modułów. Jeśli w poprzednim poleceniu wystąpił błąd, spróbuj załadować moduł i jeśli to się nie powiedzie, wróć do instrukcji instalacji programu Azure PowerShell, aby sprawdzić, czy nie wykonano kroku.
Import-Module -Name Az
Nawiązywanie połączenia z platformą Azure przy użyciu tokenu logowania przeglądarki
Możesz użyć poświadczeń logowania portalu, aby nawiązać połączenie z subskrypcją w programie PowerShell. Alternatywnie możesz uwierzytelnić się nieinterakcyjne za pomocą jednostki usługi.
Connect-AzAccount
Jeśli przechowujesz wiele subskrypcji platformy Azure, ustaw subskrypcję platformy Azure. Aby wyświetlić listę bieżących subskrypcji, uruchom to polecenie.
Get-AzSubscription | sort SubscriptionName | Select SubscriptionName
Aby określić subskrypcję, uruchom następujące polecenie. W poniższym przykładzie nazwa subskrypcji to ContosoSubscription
.
Select-AzSubscription -SubscriptionName ContosoSubscription
Wyświetlanie listy usług w subskrypcji
Następujące polecenia pochodzą z modułu Az.Resources, zwracając informacje o istniejących zasobach i usługach już aprowizowania w ramach subskrypcji. Jeśli nie wiesz, ile usług wyszukiwania zostało już utworzonych, te polecenia zwracają te informacje, zapisując podróż do portalu.
Pierwsze polecenie zwraca wszystkie usługi wyszukiwania.
Get-AzResource -ResourceType Microsoft.Search/searchServices | ft
Z listy usług zwróć informacje o określonym zasobie.
Get-AzResource -ResourceName <service-name>
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych.
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 Az.Search
Polecenia z narzędzia Az.Search nie są dostępne do momentu załadowania modułu.
Install-Module -Name Az.Search -Scope CurrentUser
Wyświetl listę wszystkich Az.Search
poleceń
W ramach kroku weryfikacji zwróć listę poleceń podanych w module.
Get-Command -Module Az.Search
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych.
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
Jeśli masz starszą wersję pakietu, zaktualizuj moduł, aby uzyskać najnowsze funkcje.
Update-Module -Name Az.Search
Pobieranie informacji o usłudze wyszukiwania
Po zaimportowaniu polecenia Az.Search i zapoznaniu się z grupą zasobów zawierającą usługę wyszukiwania uruchom polecenie Get-AzSearchService , aby zwrócić definicję usługi, w tym nazwę, region, warstwę oraz liczbę replik i partycji. W tym poleceniu podaj grupę zasobów zawierającą usługę wyszukiwania.
Get-AzSearchService -ResourceGroupName <resource-group-name>
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych.
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
Tworzenie lub usuwanie usługi
Usługa New-AzSearchService służy do tworzenia nowej usługi wyszukiwania.
New-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name> -Sku "Standard" -Location "West US" -PartitionCount 3 -ReplicaCount 3 -HostingMode Default
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych.
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
Remove-AzSearchService służy do usuwania usługi i jej danych.
Remove-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name>
Zostanie wyświetlona prośba o potwierdzenie akcji.
Confirm
Are you sure you want to remove Search Service 'pstestazuresearch01'?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Tworzenie usługi z regułami adresów IP
W zależności od wymagań dotyczących zabezpieczeń możesz utworzyć usługę wyszukiwania z skonfigurowaną zaporą IP. W tym celu najpierw zdefiniuj reguły adresów IP, a następnie przekaż je do parametru IPRuleList
, jak pokazano poniżej.
$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
Tworzenie usługi z tożsamością zarządzaną przypisaną przez system
W niektórych przypadkach, takich jak w przypadku używania tożsamości zarządzanej do nawiązywania połączenia ze źródłem danych, należy włączyć tożsamość zarządzaną przypisaną przez system. Odbywa się to przez dodanie -IdentityType SystemAssigned
do polecenia .
New-AzSearchService -ResourceGroupName <resource-group-name> `
-Name <search-service-name> `
-Sku Standard `
-Location "West US" `
-PartitionCount 3 -ReplicaCount 3 `
-HostingMode Default `
-IdentityType SystemAssigned
Tworzenie usługi S3HD
Aby utworzyć usługę S3HD , używana jest kombinacja -Sku
i -HostingMode
. Ustaw -Sku
wartość Standard3
na i -HostingMode
na HighDensity
.
New-AzSearchService -ResourceGroupName <resource-group-name> `
-Name <search-service-name> `
-Sku Standard3 `
-Location "West US" `
-PartitionCount 1 -ReplicaCount 3 `
-HostingMode HighDensity
Tworzenie usługi z prywatnym punktem końcowym
Prywatne punkty końcowe usługi Azure AI Search umożliwiają klientowi w sieci wirtualnej bezpieczny dostęp do danych w indeksie wyszukiwania za pośrednictwem usługi Private Link. Prywatny punkt końcowy używa adresu IP z przestrzeni adresowej sieci wirtualnej dla usługi wyszukiwania. Ruch sieciowy między klientem a usługą wyszukiwania przechodzi przez sieć wirtualną i łącze prywatne w sieci szkieletowej firmy Microsoft, eliminując narażenie z publicznego Internetu. Aby uzyskać więcej informacji, zobacz Tworzenie prywatnego punktu końcowego dla usługi Azure AI Search.
W poniższym przykładzie pokazano, jak utworzyć usługę wyszukiwania z prywatnym punktem końcowym.
Najpierw wdróż usługę wyszukiwania z ustawioną PublicNetworkAccess
wartością 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
Następnie utwórz sieć wirtualną, połączenie z siecią prywatną i prywatny punkt końcowy.
# 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
Na koniec utwórz prywatną strefę DNS.
## 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
Aby uzyskać więcej informacji na temat tworzenia prywatnych punktów końcowych w programie PowerShell, zobacz ten przewodnik Szybki start dotyczący usługi Private Link.
Zarządzanie połączeniami z prywatnymi punktami końcowymi
Oprócz tworzenia połączenia prywatnego punktu końcowego można również Get
, Set
i Remove
połączenia.
Polecenie Get-AzSearchPrivateEndpointConnection służy do pobierania połączenia prywatnego punktu końcowego i wyświetlenia jego stanu.
Get-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name>
Polecenie Set-AzSearchPrivateEndpointConnection służy do aktualizowania połączenia. W poniższym przykładzie ustawiono połączenie prywatnego punktu końcowego na odrzucone:
Set-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name> -Status Rejected -Description "Rejected"
Polecenie Remove-AzSearchPrivateEndpointConnection służy do usuwania połączenia prywatnego punktu końcowego.
Remove-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name>
Ponowne generowanie kluczy administratora
Polecenie New-AzSearchAdminKey służy do przerzucania kluczy interfejsu API administratora. Dwa klucze administratora są tworzone z każdą usługą w celu uwierzytelnienia dostępu. Klucze są wymagane na każdym żądaniu. Oba klucze administratora są funkcjonalnie równoważne, udzielając pełnego dostępu do zapisu w usłudze wyszukiwania z możliwością pobierania wszelkich informacji lub tworzenia i usuwania dowolnego obiektu. Istnieją dwa klucze, dzięki czemu można użyć jednego podczas zastępowania drugiego.
Można ponownie wygenerować tylko jeden raz, określony jako primary
klucz lub secondary
. Aby zapewnić nieprzerwaną obsługę, pamiętaj, aby zaktualizować cały kod klienta do używania klucza pomocniczego podczas przewracania klucza podstawowego. Unikaj zmieniania kluczy podczas wykonywania operacji.
Jak można się spodziewać, w przypadku ponownego generowania kluczy bez aktualizowania kodu klienta żądania używające starego klucza nie powiedzie się. Ponowne generowanie wszystkich nowych kluczy nie powoduje trwałej blokady usługi i nadal możesz uzyskać dostęp do usługi za pośrednictwem portalu. Po ponownej wygenerowaniu kluczy podstawowych i pomocniczych można odpowiednio zaktualizować kod klienta, aby używać nowych kluczy i operacji.
Wartości kluczy interfejsu API są generowane przez usługę. Nie można podać klucza niestandardowego dla usługi Azure AI Search do użycia. Podobnie nie ma zdefiniowanej przez użytkownika nazwy dla kluczy interfejsu API administratora. Odwołania do klucza są stałymi ciągami albo primary
secondary
.
New-AzSearchAdminKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -KeyKind Primary
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych. Oba klucze są zwracane, mimo że zmieniasz tylko jeden naraz.
Primary Secondary
------- ---------
<alphanumeric-guid> <alphanumeric-guid>
Tworzenie lub usuwanie kluczy zapytań
Polecenie New-AzSearchQueryKey służy do tworzenia kluczy interfejsu API zapytań na potrzeby dostępu tylko do odczytu z aplikacji klienckich do indeksu usługi Azure AI Search. Klucze zapytań służą do uwierzytelniania w określonym indeksie w celu pobierania wyników wyszukiwania. Klucze zapytań nie udzielają dostępu tylko do odczytu innym elementom usługi, takim jak indeks, źródło danych lub indeksator.
Nie można podać klucza do użycia przez usługę Azure AI Search. Klucze interfejsu API są generowane przez usługę.
New-AzSearchQueryKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <query-key-name>
Skalowanie replik i partycji
Polecenie Set-AzSearchService służy do zwiększania lub zmniejszania liczby replik i partycji w celu wyczytania rozliczanych zasobów w ramach usługi. Zwiększenie liczby replik lub partycji powoduje dodanie rachunku, który ma zarówno stałe, jak i zmienne opłaty. Jeśli potrzebujesz tymczasowej mocy obliczeniowej, możesz zwiększyć liczbę replik i partycji w celu obsługi obciążenia. Obszar monitorowania na stronie Portalu Przegląd zawiera kafelki dotyczące opóźnienia zapytań, zapytań na sekundę i ograniczania przepustowości wskazujących, czy bieżąca pojemność jest odpowiednia.
Może upłynąć trochę czasu, aby dodać lub usunąć zasoby. Korekty pojemności występują w tle, co umożliwia kontynuowanie istniejących obciążeń. Dodatkowa pojemność jest używana w przypadku żądań przychodzących, gdy tylko będzie gotowa, bez konieczności dodatkowej konfiguracji.
Usuwanie pojemności może być destrukcyjne. Zaleca się zatrzymanie wszystkich zadań indeksowania i indeksatora przed zmniejszeniem pojemności, aby uniknąć porzuconych żądań. Jeśli nie jest to możliwe, możesz rozważyć przyrostowe zmniejszenie pojemności, jednej repliki i partycji naraz, dopóki nie zostaną osiągnięte nowe poziomy docelowe.
Po przesłaniu polecenia nie ma możliwości zakończenia go w połowie. Przed zmianą liczby trzeba poczekać, aż polecenie zostanie zakończone.
Set-AzSearchService -ResourceGroupName <search-service-resource-group-name> -Name <search-service-name> -PartitionCount 6 -ReplicaCount 6
Wyniki powinny wyglądać podobnie do poniższych danych wyjściowych.
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
Tworzenie udostępnionego zasobu łącza prywatnego
Prywatne punkty końcowe zabezpieczonych zasobów, które są tworzone za pośrednictwem interfejsów API usługi Azure AI Search, są nazywane udostępnionymi zasobami łącza prywatnego. Dzieje się tak, ponieważ dostęp do zasobu jest "udostępnianie", taki jak konto magazynu zintegrowane z usługą Azure Private Link.
Jeśli używasz indeksatora do indeksowania danych w usłudze Azure AI Search, a źródło danych znajduje się w sieci prywatnej, możesz utworzyć wychodzące połączenie prywatnego punktu końcowego, aby uzyskać dostęp do danych.
Pełną listę zasobów platformy Azure, dla których można tworzyć wychodzące prywatne punkty końcowe z usługi Azure AI Search, można znaleźć tutaj wraz z powiązanymi wartościami identyfikatorów grupy.
Polecenie New-AzSearchSharedPrivateLinkResource służy do tworzenia udostępnionego zasobu łącza prywatnego. Pamiętaj, że niektóre konfiguracje mogą być wymagane dla źródła danych przed uruchomieniem tego polecenia.
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"
Polecenie Get-AzSearchSharedPrivateLinkResource umożliwia pobranie udostępnionych zasobów łącza prywatnego i wyświetlenie ich stanu.
Get-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name>
Aby można było go użyć, musisz zatwierdzić połączenie za pomocą następującego polecenia.
Approve-AzPrivateEndpointConnection `
-Name <spl-name> `
-ServiceName <search-service-name> `
-ResourceGroupName <search-service-resource-group-name> `
-Description = "Approved"
Polecenie Remove-AzSearchSharedPrivateLinkResource służy do usuwania udostępnionego zasobu łącza prywatnego.
$job = Remove-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name> -Force -AsJob
$job | Get-Job
Aby uzyskać szczegółowe informacje na temat konfigurowania udostępnionych zasobów łącza prywatnego, zobacz dokumentację dotyczącą nawiązywania połączeń indeksatora za pośrednictwem prywatnego punktu końcowego.
Następne kroki
Tworzenie indeksu, wykonywanie zapytań względem indeksu przy użyciu portalu, interfejsów API REST lub zestawu SDK platformy .NET.
- Tworzenie indeksu usługi Azure AI Search w witrynie Azure Portal
- Konfigurowanie indeksatora w celu załadowania danych z innych usług
- Wykonywanie zapytań względem indeksu usługi Azure AI Search przy użyciu eksploratora wyszukiwania w witrynie Azure Portal
- Jak używać usługi Azure AI Search na platformie .NET