Självstudie: Index och berika krypterade blobar för fulltextsökning i Azure AI Search

Den här självstudien visar hur du använder Azure AI Search för att indexeras dokument som tidigare har krypterats med en kundhanterad nyckel i Azure Blob Storage.

Normalt sett kan en indexerare inte extrahera innehåll från krypterade filer eftersom den inte har åtkomst till den kundhanterade krypteringsnyckeln i Azure Key Vault. Men genom att utnyttja den anpassade färdigheten DecryptBlobFile, följt av skickligheten För dokumentextrahering, kan du ge kontrollerad åtkomst till nyckeln för att dekryptera filerna och sedan extrahera innehåll från dem. Detta låser upp möjligheten att indexera och berika dessa dokument utan att äventyra krypteringsstatusen för dina lagrade dokument.

Från och med tidigare krypterade hela dokument (ostrukturerad text) som PDF, HTML, DOCX och PPTX i Azure Blob Storage använder den här självstudien en REST-klient och REST-API:er för sökning för att utföra följande uppgifter:

  • Definiera en pipeline som dekrypterar dokumenten och extraherar text från dem.
  • Definiera ett index för att lagra utdata.
  • Kör pipelinen för att skapa och läsa in indexet.
  • Utforska resultat med hjälp av fulltextsökning och en rtF-frågesyntax.

Om du inte har en Azure-prenumeration öppnar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

Distribution av anpassad kompetens skapar en Azure-funktionsapp och ett Azure Storage-konto. Eftersom dessa resurser skapas åt dig visas de inte som en förutsättning. När du är klar med den här självstudien ska du komma ihåg att rensa resurserna så att du inte debiteras för tjänster som du inte använder.

Kommentar

Kompetensuppsättningar kräver ofta att du kopplar en Azure AI-resurs med flera tjänster. Som det är skrivet har den här kompetensuppsättningen inget beroende av Azure AI-tjänster och därför krävs ingen nyckel. Om du senare lägger till berikanden som anropar inbyggda kunskaper bör du komma ihåg att uppdatera din kompetensuppsättning i enlighet med detta.

1 – Skapa tjänster och samla in autentiseringsuppgifter

Distribuera den anpassade färdigheten

I det här exemplet används exempelprojektet DecryptBlobFile från GitHub-lagringsplatsen Azure Search Power Skills . I det här avsnittet distribuerar du kunskapen till en Azure-funktion så att den kan användas i en kompetensuppsättning. Ett inbyggt distributionsskript skapar en Azure-funktionsresurs med namnet från och med psdbf-function-app och läser in kunskapen. Du uppmanas att ange en prenumeration och resursgrupp. Se till att välja samma prenumeration som din Azure Key Vault-instans finns i.

Operativt tar decryptBlobFile-färdigheten URL:en och SAS-token för varje blob som indata och matar ut den nedladdade, dekrypterade filen med hjälp av filreferenskontraktet som Azure AI Search förväntar sig. Kom ihåg att DecryptBlobFile behöver krypteringsnyckeln för att utföra dekrypteringen. Som en del av installationen skapar du också en åtkomstprincip som ger dekrypteradeBlobFile-funktioner åtkomst till krypteringsnyckeln i Azure Key Vault.

  1. Klicka på knappen Distribuera till Azure på landningssidan DecryptBlobFile, som öppnar den tillhandahållna Resource Manager-mallen i Azure-portalen.

  2. Välj samma prenumeration där din Azure Key Vault-instans finns (den här självstudien fungerar inte om du väljer en annan prenumeration).

  3. Välj en befintlig resursgrupp eller skapa en ny. En dedikerad resursgrupp gör rensningen enklare senare.

  4. Välj Granska + skapa, se till att du godkänner villkoren och välj sedan Skapa för att distribuera Azure-funktionen.

    Skärmbild av ARM-mallsidan i Azure-portalen.

  5. Vänta tills distributionen är klar.

Du bör ha en Azure-funktionsapp som innehåller dekrypteringslogik och en Azure Storage-resurs som lagrar programdata. I nästa steg ger du appen behörighet att komma åt nyckelvalvet och samla in information som du behöver för REST-anropen.

Bevilja behörigheter i Azure Key Vault

  1. Gå till Azure Key Vault-tjänsten i portalen. Skapa en åtkomstprincip i Azure Key Vault som ger nyckelåtkomst till den anpassade färdigheten.

  2. I det vänstra navigeringsfönstret väljer du Åtkomstprinciper och sedan + Skapa för att starta guiden Skapa en åtkomstprincip.

    Skärmbild av kommandot Åtkomstprincip i det vänstra navigeringsfönstret.

  3. På sidan Behörigheter under Konfigurera från mall väljer du Azure Data Lake Storage eller Azure Storage.

  4. Välj Nästa.

  5. På sidan Huvudnamn väljer du den Azure-funktionsinstans som du distribuerade. Du kan söka efter det med hjälp av resursprefixet som användes för att skapa det i steg 2, som har standardprefixvärdet psdbf-function-app.

  6. Välj Nästa.

  7. I Granska + skapa väljer du Skapa.

Samla in appinformation

  1. Gå till funktionen psdbf-function-app i portalen och anteckna följande egenskaper som du behöver för REST-anropen:

  2. Hämta funktions-URL:en, som finns under Essentials på huvudsidan för funktionen.

    Skärmbild av översiktssidan och essentials-avsnittet i Azure-funktionsappen.

  3. Hämta värdnyckelkoden, som du hittar genom att gå till Appnycklar, klicka för att visa standardnyckeln och kopiera värdet.

    Skärmbild av sidan Appnycklar i Azure-funktionsappen.

  1. Logga in på Azure-portalen och hämta namnet på söktjänsten på sidan Översikt för söktjänsten. Du kan bekräfta tjänstnamnet genom att granska slutpunkts-URL:en. Om slutpunkts-URL:en var https://mydemo.search.windows.netskulle tjänstnamnet vara mydemo.

  2. I Inställningar> Keys hämtar du en administratörsnyckel för fullständiga rättigheter för tjänsten. Det finns två utbytbara administratörsnycklar som tillhandahålls för affärskontinuitet om du behöver rulla över en. Du kan använda antingen den primära eller sekundära nyckeln på begäranden för att lägga till, ändra och ta bort objekt.

    Hämta tjänstnamnet och administratörs- och frågenycklarna

Alla begäranden kräver en API-nyckel i rubriken för varje begäran som skickas till din tjänst. En giltig nyckel upprättar förtroende per begäran mellan programmet som skickar begäran och den tjänst som hanterar den.

Konfigurera en REST-klient

Skapa variabler för slutpunkter och nycklar:

Olika Var du kan hämta den
admin-key På sidan Nycklar i Azure AI-tjänsten Search.
search-service-name Namnet på Azure AI-tjänsten Search. URL:en är https://{{search-service-name}}.search.windows.net.
storage-connection-string I lagringskontot går du till fliken Åtkomstnycklar och väljer nyckel1> Anslut ionssträng.
storage-container-name Namnet på blobcontainern som har de krypterade filerna som ska indexeras.
function-uri I Azure-funktionen under Essentials på huvudsidan.
function-code I Azure-funktionen går du till Appnycklar, klickar på för att visa standardnyckelnoch kopierar värdet.
api-version Lämna som 2020-06-30.
datasource-name Lämna som encrypted-blobs-ds.
index-name Lämna som encrypted-blobs-idx.
skillset-name Lämna som encrypted-blobs-ss.
indexer-name Lämna som encrypted-blobs-ixr.

Granska och kör varje begäran

Använd HTTP-begäranden för att skapa objekt i en berikningspipeline:

  • PUT-begäran om att skapa indexet: Det här sökindexet innehåller de data som Azure AI Search använder och returnerar.

  • POST-begäran om att skapa datakällan: Den här datakällan anger anslutningen till ditt lagringskonto som innehåller de krypterade blobfilerna.

  • PUT-begäran om att skapa kunskapsuppsättningen: Kompetensuppsättningen anger den anpassade färdighetsdefinitionen för Azure-funktionen som dekrypterar blobfildata och en DocumentExtractionSkill för att extrahera texten från varje dokument efter att den har dekrypterats.

  • PUT-begäran om att skapa indexeraren: När du kör indexeraren hämtas blobarna, kompetensuppsättningen tillämpas och indexeras och resultatet lagras. Du måste köra den här begäran senast. Den anpassade färdigheten i kompetensuppsättningen anropar dekrypteringslogik.

Övervaka indexering

Indexering och berikning påbörjas så snart du skickar begäran om att skapa indexerare. Beroende på hur många dokument som finns i ditt lagringskonto kan indexeringen ta en stund. Om du vill ta reda på om indexeraren fortfarande körs skickar du en begäran om get indexer-status och granskar svaret för att ta reda på om indexeraren körs eller om du vill visa fel- och varningsinformation.

Om du använder den kostnadsfria nivån förväntas följande meddelande: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters". Det här meddelandet visas eftersom blobindexering på den kostnadsfria nivån har en 32K-gräns för extrahering av tecken. Du ser inte det här meddelandet för den här datauppsättningen på högre nivåer.

Sök i ditt innehåll

När indexeringskörningen är klar kan du köra vissa frågor för att kontrollera att data har dekrypterats och indexerats. Navigera till din Azure AI-tjänsten Search i portalen och använd sökutforskaren för att köra frågor över indexerade data.

Rensa resurser

När du arbetar i din egen prenumeration i slutet av ett projekt är det en bra idé att ta bort de resurser som du inte längre behöver. Resurser som fortsätter att köras kostar pengar. Du kan ta bort enstaka resurser eller hela resursgruppen om du vill ta bort alla resurser.

Du kan hitta och hantera resurser i portalen med hjälp av länken Alla resurser eller Resursgrupper i det vänstra navigeringsfönstret.

Nästa steg

Nu när du har indexerat krypterade filer kan du iterera på den här pipelinen genom att lägga till fler kognitiva kunskaper. På så sätt kan du utöka och få ytterligare insikter om dina data.

Om du arbetar med dubbelt krypterade data kanske du vill undersöka de funktioner för indexkryptering som är tillgängliga i Azure AI Search. Indexeraren behöver dekrypterade data i indexeringssyfte, men när indexet finns kan det krypteras i ett sökindex med hjälp av en kundhanterad nyckel. Detta säkerställer att dina data alltid krypteras när de är i vila. Mer information finns i Konfigurera kundhanterade nycklar för datakryptering i Azure AI Search.