Hantera din Azure AI-usluga pretrage med PowerShell
Du kan köra PowerShell-cmdletar och skript i Windows, Linux eller i Azure Cloud Shell för att skapa och konfigurera Azure AI Search.
Använd az.search-modulen för att utföra följande uppgifter:
- Visa en lista över söktjänster i en prenumeration
- Returnera tjänstinformation
- Skapa eller ta bort en tjänst
- Skapa en tjänst med en privat slutpunkt
- Återskapa API-nycklar för administratörer
- Skapa eller ta bort fråge-API-nycklar
- Skala upp eller ned med repliker och partitioner
- Skapa en resurs för delad privat länk
Ibland kan frågor ställas om uppgifter som inte finns med i listan ovan.
Du kan inte ändra ett servernamn, en region eller en nivå programmatiskt eller i portalen. Dedikerade resurser allokeras när du skapar en tjänst. Därför krävs en ny tjänst för att ändra den underliggande maskinvaran (plats eller nodtyp).
Du kan inte använda verktyg eller API:er för att överföra innehåll, till exempel ett index, från en tjänst till en annan. Inom en tjänst är programmatiskt skapande av innehåll via Search Service REST API eller ett SDK, till exempel Azure SDK för .NET. Det finns inga dedikerade kommandon för innehållsmigrering, men du kan skriva skript som anropar REST API eller ett klientbibliotek för att skapa och läsa in index på en ny tjänst.
Administrationsfunktioner för förhandsversioner är vanligtvis inte tillgängliga i Az.Search-modulen . Om du vill använda en förhandsversionsfunktion använder du REST API för hantering och en förhandsversion av API:et.
Az.Search-modulen utökar Azure PowerShell med fullständig paritet till de stabila versionerna av REST-API:erna för sökhantering.
Kontrollera versioner och läsa in moduler
Exemplen i den här artikeln är interaktiva och kräver utökade behörigheter. Lokal PowerShell och Azure PowerShell (Az-modulen) krävs.
Kontroll av PowerShell-version
Installera den senaste versionen av PowerShell om du inte har den.
$PSVersionTable.PSVersion
Läs in Azure PowerShell
Om du inte är säker på om Az är installerat kör du följande kommando som ett verifieringssteg.
Get-InstalledModule -Name Az
Vissa system läser inte in moduler automatiskt. Om du får ett fel på föregående kommando kan du prova att läsa in modulen, och om det misslyckas går du tillbaka till installationsanvisningarna för Azure PowerShell-installationen för att se om du missade ett steg.
Import-Module -Name Az
Ansluta till Azure med en webbläsarinloggningstoken
Du kan använda dina inloggningsuppgifter för portalen för att ansluta till en prenumeration i PowerShell. Du kan också autentisera icke-interaktivt med ett huvudnamn för tjänsten.
Connect-AzAccount
Om du har flera Azure-prenumerationer anger du din Azure-prenumeration. Om du vill se en lista över dina aktuella prenumerationer kör du det här kommandot.
Get-AzSubscription | sort SubscriptionName | Select SubscriptionName
Om du vill ange prenumerationen kör du följande kommando. I följande exempel är ContosoSubscription
prenumerationsnamnet .
Select-AzSubscription -SubscriptionName ContosoSubscription
Visa en lista över tjänster i en prenumeration
Följande kommandon kommer från Az.Resources och returnerar information om befintliga resurser och tjänster som redan har etablerats i din prenumeration. Om du inte vet hur många söktjänster som redan har skapats returnerar dessa kommandon den informationen, vilket sparar en resa till portalen.
Det första kommandot returnerar alla söktjänster.
Get-AzResource -ResourceType Microsoft.Search/searchServices | ft
I listan över tjänster returnerar du information om en specifik resurs.
Get-AzResource -ResourceName <service-name>
Resultaten bör se ut ungefär som följande utdata.
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
Kommandon från Az.Search är inte tillgängliga förrän du har läst in modulen.
Install-Module -Name Az.Search -Scope CurrentUser
Visa en lista över alla Az.Search
kommandon
Som ett verifieringssteg returnerar du en lista över kommandon som tillhandahålls i modulen.
Get-Command -Module Az.Search
Resultaten bör se ut ungefär som följande utdata.
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
Om du har en äldre version av paketet uppdaterar du modulen för att få de senaste funktionerna.
Update-Module -Name Az.Search
Hämta söktjänstinformation
När Az.Search har importerats och du känner till resursgruppen som innehåller söktjänsten kör du Get-AzSearchService för att returnera tjänstdefinitionen, inklusive namn, region, nivå och antal repliker och partitioner. För det här kommandot anger du den resursgrupp som innehåller söktjänsten.
Get-AzSearchService -ResourceGroupName <resource-group-name>
Resultaten bör se ut ungefär som följande utdata.
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
Skapa eller ta bort en tjänst
New-AzSearchService används för att skapa en ny söktjänst.
New-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name> -Sku "Standard" -Location "West US" -PartitionCount 3 -ReplicaCount 3 -HostingMode Default
Resultaten bör se ut ungefär som följande utdata.
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 används för att ta bort en tjänst och dess data.
Remove-AzSearchService -ResourceGroupName <resource-group-name> -Name <search-service-name>
Du uppmanas att bekräfta åtgärden.
Confirm
Are you sure you want to remove Search Service 'pstestazuresearch01'?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Skapa en tjänst med IP-regler
Beroende på dina säkerhetskrav kanske du vill skapa en söktjänst med en konfigurerad IP-brandvägg. Det gör du genom att först definiera IP-reglerna och sedan skicka dem till parametern IPRuleList
enligt nedan.
$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
Skapa en tjänst med en systemtilldelad hanterad identitet
I vissa fall, till exempel när du använder hanterad identitet för att ansluta till en datakälla, måste du aktivera systemtilldelad hanterad identitet. Detta görs genom att lägga -IdentityType SystemAssigned
till i kommandot.
New-AzSearchService -ResourceGroupName <resource-group-name> `
-Name <search-service-name> `
-Sku Standard `
-Location "West US" `
-PartitionCount 3 -ReplicaCount 3 `
-HostingMode Default `
-IdentityType SystemAssigned
Skapa en S3HD-tjänst
För att skapa en S3HD-tjänst används en kombination av -Sku
och -HostingMode
. Ange -Sku
till Standard3
och -HostingMode
till HighDensity
.
New-AzSearchService -ResourceGroupName <resource-group-name> `
-Name <search-service-name> `
-Sku Standard3 `
-Location "West US" `
-PartitionCount 1 -ReplicaCount 3 `
-HostingMode HighDensity
Skapa en tjänst med en privat slutpunkt
Privata slutpunkter för Azure AI Search gör det möjligt för en klient i ett virtuellt nätverk att på ett säkert sätt komma åt data i ett sökindex via en Private Link. Den privata slutpunkten använder en IP-adress från det virtuella nätverkets adressutrymme för söktjänsten. Nätverkstrafiken mellan klienten och söktjänsten passerar över det virtuella nätverket och en privat länk i Microsofts stamnätverk, vilket eliminerar exponeringen från det offentliga Internet. Mer information finns i Skapa en privat slutpunkt för Azure AI Search.
I följande exempel visas hur du skapar en söktjänst med en privat slutpunkt.
Distribuera först en söktjänst med PublicNetworkAccess
inställd på 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
Skapa sedan ett virtuellt nätverk, en privat nätverksanslutning och en privat slutpunkt.
# 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
Skapa slutligen en privat DNS-zon.
## 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
Mer information om hur du skapar privata slutpunkter i PowerShell finns i den här snabbstarten för Private Link.
Hantera privata slutpunktsanslutningar
Förutom att skapa en privat slutpunktsanslutning kan du även Get
, Set
och Remove
anslutningen.
Get-AzSearchPrivateEndpointConnection används för att hämta en privat slutpunktsanslutning och för att se dess status.
Get-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name>
Set-AzSearchPrivateEndpointConnection används för att uppdatera anslutningen. I följande exempel anges en privat slutpunktsanslutning till avvisad:
Set-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name> -Status Rejected -Description "Rejected"
Remove-AzSearchPrivateEndpointConnection används för att ta bort den privata slutpunktsanslutningen.
Remove-AzSearchPrivateEndpointConnection -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <pe-connection-name>
Återskapa administratörsnycklar
New-AzSearchAdminKey används för att rulla över administratörs-API-nycklar. Två administratörsnycklar skapas med varje tjänst för autentiserad åtkomst. Nycklar krävs för varje begäran. Båda administratörsnycklarna är funktionellt likvärdiga, vilket ger fullständig skrivåtkomst till en söktjänst med möjlighet att hämta all information eller skapa och ta bort alla objekt. Det finns två nycklar så att du kan använda en när du ersätter den andra.
Du kan bara återskapa en i taget, som anges som antingen primary
eller-nyckeln secondary
. Kom ihåg att uppdatera all klientkod för att använda en sekundär nyckel när du rullar över den primära nyckeln för oavbruten tjänst. Undvik att ändra nycklarna under drift.
Om du återskapar nycklar utan att uppdatera klientkoden misslyckas begäranden som använder den gamla nyckeln som du kan förvänta dig. Att återskapa alla nya nycklar låser dig inte permanent från tjänsten och du kan fortfarande komma åt tjänsten via portalen. När du har återskapat primära och sekundära nycklar kan du uppdatera klientkoden för att använda de nya nycklarna och åtgärderna återupptas i enlighet med detta.
Värden för API-nycklarna genereras av tjänsten. Du kan inte ange en anpassad nyckel för Azure AI Search att använda. På samma sätt finns det inget användardefinierat namn för administratörs-API-nycklar. Referenser till nyckeln är fasta strängar, antingen primary
eller secondary
.
New-AzSearchAdminKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -KeyKind Primary
Resultaten bör se ut ungefär som följande utdata. Båda nycklarna returneras även om du bara ändrar en i taget.
Primary Secondary
------- ---------
<alphanumeric-guid> <alphanumeric-guid>
Skapa eller ta bort frågenycklar
New-AzSearchQueryKey används för att skapa fråge-API-nycklar för skrivskyddad åtkomst från klientappar till ett Azure AI Search-index. Frågenycklar används för att autentisera till ett specifikt index för att hämta sökresultat. Frågenycklar ger inte skrivskyddad åtkomst till andra objekt i tjänsten, till exempel index, datakälla eller indexerare.
Du kan inte ange en nyckel som Azure AI Search kan använda. API-nycklar genereras av tjänsten.
New-AzSearchQueryKey -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <query-key-name>
Skala repliker och partitioner
Set-AzSearchService används för att öka eller minska repliker och partitioner för att justera fakturerbara resurser i din tjänst. Att öka repliker eller partitioner lägger till din faktura, som har både fasta och variabla avgifter. Om du har ett tillfälligt behov av mer bearbetningskraft kan du öka repliker och partitioner för att hantera arbetsbelastningen. Övervakningsområdet på översiktsportalsidan innehåller paneler om frågesvarstid, frågor per sekund och begränsning som anger om den aktuella kapaciteten är tillräcklig.
Det kan ta en stund att lägga till eller ta bort resursen. Kapacitetsjusteringar sker i bakgrunden, vilket gör att befintliga arbetsbelastningar kan fortsätta. Extra kapacitet används för inkommande begäranden så snart den är klar, utan att någon extra konfiguration krävs.
Det kan vara störande att ta bort kapacitet. Vi rekommenderar att du stoppar alla indexerings- och indexeringsjobb innan du minskar kapaciteten för att undvika borttagna begäranden. Om det inte är möjligt kan du överväga att minska kapaciteten stegvis, en replik och partition i taget tills de nya målnivåerna har nåtts.
När du har skickat kommandot går det inte att avsluta det halvvägs. Du måste vänta tills kommandot är klart innan du ändrar antalet.
Set-AzSearchService -ResourceGroupName <search-service-resource-group-name> -Name <search-service-name> -PartitionCount 6 -ReplicaCount 6
Resultaten bör se ut ungefär som följande utdata.
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
Skapa en resurs för delad privat länk
Privata slutpunkter för skyddade resurser som skapas via Api:er för Azure AI Search kallas delade privata länkresurser. Det beror på att du "delar" åtkomsten till en resurs, till exempel ett lagringskonto som har integrerats med Azure Private Link-tjänsten.
Om du använder en indexerare för att indexera data i Azure AI Search och din datakälla finns i ett privat nätverk kan du skapa en utgående privat slutpunktsanslutning för att nå data.
En fullständig lista över De Azure-resurser som du kan skapa utgående privata slutpunkter för från Azure AI Search finns här tillsammans med relaterade grupp-ID-värden .
New-AzSearchSharedPrivateLinkResource används för att skapa resursen för delad privat länk. Tänk på att viss konfiguration kan krävas för datakällan innan du kör det här kommandot.
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"
Med Get-AzSearchSharedPrivateLinkResource kan du hämta resurserna för delade privata länkar och visa deras status.
Get-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name>
Du måste godkänna anslutningen med följande kommando innan den kan användas.
Approve-AzPrivateEndpointConnection `
-Name <spl-name> `
-ServiceName <search-service-name> `
-ResourceGroupName <search-service-resource-group-name> `
-Description = "Approved"
Remove-AzSearchSharedPrivateLinkResource används för att ta bort resursen för delad privat länk.
$job = Remove-AzSearchSharedPrivateLinkResource -ResourceGroupName <search-service-resource-group-name> -ServiceName <search-service-name> -Name <spl-name> -Force -AsJob
$job | Get-Job
Fullständig information om hur du konfigurerar delade privata länkresurser finns i dokumentationen om hur du skapar indexerareanslutningar via en privat slutpunkt.
Nästa steg
Skapa ett index, fråga ett index med hjälp av portalen, REST-API:er eller .NET SDK.