Zelfstudie: Versleutelde blobs indexeren en verrijken voor zoeken in volledige tekst in Azure AI Search
In deze zelfstudie leert u hoe u Azure AI Search gebruikt om documenten te indexeren die eerder zijn versleuteld met een door de klant beheerde sleutel in Azure Blob Storage.
Normaal gesproken kan een indexeerfunctie geen inhoud extraheren uit blobs die zijn versleuteld met behulp van de versleuteling aan de clientzijde van de Azure Blob Storage-clientbibliotheek, omdat de indexeerfunctie geen toegang heeft tot de door de klant beheerde versleutelingssleutel in Azure Key Vault. Door echter gebruik te maken van de aangepaste vaardigheid DecryptBlobFile, gevolgd door de vaardigheid Documentextractie, kunt u gecontroleerde toegang bieden tot de sleutel om de bestanden te ontsleutelen en vervolgens inhoud ervan te extraheren. Hierdoor kunt u deze documenten indexeren en verrijken zonder de versleutelingsstatus van uw opgeslagen documenten in gevaar te brengen.
Vanaf eerder versleutelde hele documenten (ongestructureerde tekst) zoals PDF, HTML, DOCX en PPTX in Azure Blob Storage, gebruikt deze zelfstudie een REST-client en de Search REST API's om de volgende taken uit te voeren:
- Definieer een pijplijn waarmee de documenten worden ontsleuteld en tekst uit de documenten wordt geëxtraheerd.
- Definieer een index om de uitvoer op te slaan.
- Voer de pijplijn uit om de index te maken en te laden.
- Bekijk de resultaten met zoeken in volledige tekst en een uitgebreide query-syntaxis.
Als u geen abonnement op Azure hebt, opent u een gratis account voordat u begint.
Vereisten
Azure AI Search op elke laag of regio.
Azure Storage, Standard-prestaties (algemeen gebruik v2).
Blobs die zijn versleuteld met een door de klant beheerde sleutel. Zie zelfstudie: Blobs versleutelen en ontsleutelen met behulp van Azure Key Vault als u voorbeeldgegevens wilt maken.
Azure Key Vault in hetzelfde abonnement als Azure AI Search. Voor de sleutelkluis moet voorlopig verwijderen en beveiliging tegen opschonen zijn ingeschakeld.
Aangepaste vaardigheidsimplementatie maakt een Azure Function-app en een Azure Storage-account. Omdat deze resources voor u worden gemaakt, worden ze niet vermeld als een vereiste. Wanneer u klaar bent met deze zelfstudie, moet u de resources opschonen, zodat u niet wordt gefactureerd voor services die u niet gebruikt.
Notitie
Vaardighedensets vereisen vaak het koppelen van een Azure AI-resource voor meerdere services. Zoals geschreven, heeft deze vaardighedenset geen afhankelijkheid van Azure AI-services en is er dus geen sleutel vereist. Als u later verrijkingen toevoegt die ingebouwde vaardigheden aanroepen, moet u uw vaardighedenset dienovereenkomstig bijwerken.
De aangepaste vaardigheid implementeren
In dit voorbeeld wordt het voorbeeldproject DecryptBlobFile gebruikt vanuit de GitHub-opslagplaats azure Search Power Skills . In deze sectie implementeert u de vaardigheid in een Azure-functie, zodat deze kan worden gebruikt in een vaardighedenset. Een ingebouwd implementatiescript maakt een Azure Function-resource met een psdbf-function-app-voorvoegsel en laadt de vaardigheid. U wordt gevraagd een abonnement en resourcegroep op te geven. Zorg ervoor dat u hetzelfde abonnement kiest waarin uw Azure Key Vault-exemplaar zich bevindt.
Operationeel neemt de vaardigheid DecryptBlobFile de URL en het SAS-token voor elke blob als invoer en wordt het gedownloade, ontsleutelde bestand uitgevoerd met behulp van het bestandreferentiecontract dat door Azure AI Search wordt verwacht. Zoals u weet, heeft DecryptBlobFile de versleutelingssleutel nodig om de ontsleuteling uit te voeren. Als onderdeel van de installatie maakt u ook een toegangsbeleid dat DecryptBlobFile-functie toegang verleent tot de versleutelingssleutel in Azure Key Vault.
Klik op de knop Implementeren naar Azure op de landingspagina DecryptBlobFile, waarmee de opgegeven Resource Manager-sjabloon in Azure Portal wordt geopend.
Kies hetzelfde abonnement als uw Azure Key Vault-exemplaar bestaat (deze zelfstudie werkt niet als u een ander abonnement selecteert).
Selecteer een bestaande resourcegroep of maak een nieuwe. Een toegewezen resourcegroep maakt het opschonen later eenvoudiger.
Selecteer Beoordelen en maken, zorg ervoor dat u akkoord gaat met de voorwaarden en selecteer Vervolgens Maken om de Azure-functie te implementeren.
Wacht tot de implementatie is voltooid.
U moet een Azure Function-app hebben die de ontsleutelingslogica en een Azure Storage-resource bevat waarmee toepassingsgegevens worden opgeslagen. In de volgende stappen geeft u de app machtigingen voor toegang tot de sleutelkluis en verzamelt u informatie die u nodig hebt voor de REST-aanroepen.
Machtigingen verlenen in Azure Key Vault
Navigeer naar uw Azure Key Vault-service in Azure Portal. Maak een toegangsbeleid in Azure Key Vault waarmee sleuteltoegang tot de aangepaste vaardigheid wordt verleend.
Selecteer in het linkernavigatiedeelvenster Toegangsbeleid en selecteer vervolgens + Maken om de wizard Een toegangsbeleid maken te starten.
Selecteer Op de pagina Machtigingen onder Configureren vanuit sjabloon De optie Azure Data Lake Storage of Azure Storage.
Selecteer Volgende.
Selecteer op de pagina Principal het Azure Function-exemplaar dat u hebt geïmplementeerd. U kunt ernaar zoeken met behulp van het resourcevoorvoegsel dat is gebruikt om het te maken in stap 2, met een standaardvoorvoegselwaarde van psdbf-function-app.
Selecteer Volgende.
Bij Beoordelen en maken selecteert u Maken.
App-gegevens verzamelen
Navigeer naar de functie psdbf-function-app in Azure Portal en noteer de volgende eigenschappen die u nodig hebt voor de REST-aanroepen:
Haal de functie-URL op, die u kunt vinden onder Essentials op de hoofdpagina voor de functie.
Haal de hostsleutelcode op, die u kunt vinden door naar app-sleutels te navigeren, te klikken om de standaardsleutel weer te geven en de waarde te kopiëren.
Een api-sleutel en URL voor beheerders ophalen voor Azure AI Search
Meld u aan bij Azure Portal en haal op de overzichtspagina van uw zoekservice de naam van uw zoekservice op. U kunt uw servicenaam bevestigen door de URL van het eindpunt te controleren. Als uw eindpunt-URL
https://mydemo.search.windows.net
is, wordt uw service naammydemo
.Haal onder Instellingen>Sleutels een beheersleutel op voor volledige rechten op de service. Er zijn twee uitwisselbare beheersleutels die voor bedrijfscontinuïteit worden verstrekt voor het geval u een moet overschakelen. U kunt de primaire of secundaire sleutel gebruiken op aanvragen voor het toevoegen, wijzigen en verwijderen van objecten.
Voor alle aanvragen is een API-sleutel vereist in de header die naar uw service wordt verzonden. Me een geldige sleutel stelt u per aanvraag een vertrouwensrelatie in tussen de toepassing die de aanvraag verzendt en de service die de aanvraag afhandelt.
Een REST-client instellen
Variabelen maken voor eindpunten en sleutels:
Variabel | Waar te verkrijgen? |
---|---|
admin-key |
Op de pagina Sleutels van de Azure AI-Search-service. |
search-service-name |
De naam van de Azure AI-Search-service. De URL is https://{{search-service-name}}.search.windows.net . |
storage-connection-string |
Selecteer in het opslagaccount op het tabblad Toegangssleutels de key1>-verbindingstekenreeks. |
storage-container-name |
De naam van de blobcontainer met de versleutelde bestanden die moeten worden geïndexeerd. |
function-uri |
In de Azure-functie onder Essentials op de hoofdpagina. |
function-code |
Ga in de Azure-functie naar app-sleutels, klik om de standaardsleutel weer te geven en kopieer de waarde. |
api-version |
Laat deze staan op 2020-06-30. |
datasource-name |
Laat deze staan als versleutelde blobs-ds. |
index-name |
Laat deze staan als versleutelde blobs-idx. |
skillset-name |
Laat deze staan als versleutelde blobs-ss. |
indexer-name |
Laat deze staan als versleutelde blobs-ixr. |
Elke aanvraag controleren en uitvoeren
HTTP-aanvragen gebruiken om de objecten van een verrijkingspijplijn te maken:
PUT-aanvraag voor het maken van de index: deze zoekindex bevat de gegevens die Azure AI Search gebruikt en retourneert.
POST-aanvraag voor het maken van de gegevensbron: Deze gegevensbron geeft de verbinding met uw opslagaccount op met de versleutelde blobbestanden.
PUT-aanvraag voor het maken van de vaardighedenset: De vaardighedenset specificeert de aangepaste vaardigheidsdefinitie voor de Azure-functie waarmee de gegevens van het blobbestand worden ontsleuteld en een DocumentExtractionSkill om de tekst uit elk document te extraheren nadat het is ontsleuteld.
PUT-aanvraag voor het maken van de indexeerfunctie: als u de indexeerfunctie uitvoert, worden de blobs opgehaald, worden de vaardighedenset toegepast en worden de resultaten opgeslagen. U moet deze aanvraag als laatste uitvoeren. De aangepaste vaardigheid in de vaardighedenset roept de ontsleutelingslogica aan.
Het indexeren bewaken
Het indexeren en verrijken begint zodra u de aanvraag Indexeerfunctie maken hebt verzonden. Afhankelijk van het aantal documenten in uw opslagaccount kan het indexeren enige tijd duren. Als u wilt weten of de indexeerfunctie nog steeds actief is, verzendt u een get Indexer-statusaanvraag en controleert u het antwoord om te zien of de indexeerfunctie wordt uitgevoerd of om fout- en waarschuwingsgegevens weer te geven.
Als u de gratis laag gebruikt, wordt het volgende bericht verwacht: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters"
. Dit bericht wordt weergegeven omdat blobindexering op de gratis laag een limiet van 32.000 tekens heeft voor tekenextractie. Bij hogere lagen wordt dit bericht niet voor deze gegevensset weergegeven.
Uw inhoud doorzoeken
Nadat de uitvoering van de indexeerfunctie is voltooid, kunt u enkele query's uitvoeren om te controleren of de gegevens zijn ontsleuteld en geïndexeerd. Navigeer naar uw Azure AI-Search-service in Azure Portal en gebruik Search Explorer om query's uit te voeren op de geïndexeerde gegevens.
Resources opschonen
Wanneer u in uw eigen abonnement werkt, is het een goed idee om aan het einde van een project te bepalen of u de gemaakte resources nog steeds nodig hebt en of u deze moet verwijderen. Resources die actief blijven, kunnen u geld kosten. U kunt resources afzonderlijk verwijderen, maar u kunt ook de resourcegroep verwijderen als u de volledige resourceset wilt verwijderen.
U kunt resources vinden en beheren in Azure Portal met behulp van de koppeling Alle resources of resourcegroepen in het linkernavigatiedeelvenster.
Volgende stappen
Nu u versleutelde bestanden hebt geïndexeerd, kunt u deze pijplijn herhalen door meer vaardigheden toe te voegen. Hierdoor kunt u uw gegevens verrijken en er meer inzicht in krijgen.
Als u met dubbel versleutelde gegevens werkt, wilt u mogelijk de indexversleutelingsfuncties onderzoeken die beschikbaar zijn in Azure AI Search. Hoewel de indexeerfunctie ontsleutelde gegevens nodig heeft voor indexeringsdoeleinden, kan de index zodra de index bestaat, worden versleuteld in een zoekindex met behulp van een door de klant beheerde sleutel. Dit zorgt ervoor dat uw gegevens altijd worden versleuteld wanneer ze inactief zijn. Zie Door de klant beheerde sleutels configureren voor gegevensversleuteling in Azure AI Search voor meer informatie.