Kurz: Indexování a rozšiřování šifrovaných objektů blob pro fulltextové vyhledávání ve službě Azure AI Search
V tomto kurzu se dozvíte, jak pomocí služby Azure AI Search indexovat dokumenty, které byly dříve šifrované pomocí klíče spravovaného zákazníkem ve službě Azure Blob Storage.
Indexer obvykle nemůže extrahovat obsah z objektů blob, které byly šifrované pomocí šifrování klientské knihovny služby Azure Blob Storage na straně klienta, protože indexer nemá přístup k šifrovacímu klíči spravovanému zákazníkem ve službě Azure Key Vault. Pomocí vlastní dovednosti DecryptBlobFile, po které následuje dovednost extrakce dokumentů, můžete poskytnout řízený přístup ke klíči k dešifrování souborů a pak z nich extrahovat obsah. Tím se odemkne možnost indexovat a rozšířit tyto dokumenty bez ohrožení stavu šifrování uložených dokumentů.
Počínaje dříve šifrovanými celými dokumenty (nestrukturovaným textem), jako je PDF, HTML, DOCX a PPTX ve službě Azure Blob Storage, tento kurz používá klienta REST a rozhraní REST API služby Search k provádění následujících úloh:
- Dešifruje dokumenty a extrahuje z nich text.
- Definujte index pro uložení výstupu.
- Spuštěním kanálu vytvořte a načtěte index.
- Prozkoumejte výsledky pomocí fulltextového vyhledávání a syntaxe dotazu s formátováním.
Pokud nemáte předplatné Azure, otevřete si před zahájením bezplatný účet .
Požadavky
Azure AI Search v libovolné vrstvě nebo oblasti
Azure Storage, výkon úrovně Standard (pro obecné účely v2).
Objekty blob šifrované pomocí klíče spravovaného zákazníkem Viz kurz: Šifrování a dešifrování objektů blob pomocí služby Azure Key Vault , pokud potřebujete vytvořit ukázková data.
Azure Key Vault ve stejném předplatném jako Azure AI Search. Trezor klíčů musí mít povolenou ochranu obnovitelného odstranění a vymazání .
Nasazení vlastních dovedností vytvoří aplikaci funkcí Azure a účet Azure Storage. Vzhledem k tomu, že jsou tyto prostředky vytvořené za vás, nejsou uvedené jako předpoklady. Až tento kurz dokončíte, nezapomeňte prostředky vyčistit, abyste se neúčtoli za služby, které nepoužíváte.
Poznámka:
Sady dovedností často vyžadují připojení prostředku Azure AI s více službami. Jak je uvedeno, tato sada dovedností nemá žádnou závislost na službách Azure AI, a proto není potřeba žádný klíč. Pokud později přidáte rozšíření, která vyvolávají předdefinované dovednosti, nezapomeňte odpovídajícím způsobem aktualizovat sadu dovedností.
Nasazení vlastní dovednosti
Tento příklad používá ukázkový projekt DecryptBlobFile z úložiště Azure Search Power Skills na GitHubu. V této části nasadíte dovednost do funkce Azure Functions, aby ji bylo možné použít v sadě dovedností. Integrovaný skript nasazení vytvoří prostředek funkce Azure Functions s předponou psdbf-function-app a načte dovednosti. Zobrazí se výzva k zadání předplatného a skupiny prostředků. Nezapomeňte zvolit stejné předplatné, ve které se nachází vaše instance služby Azure Key Vault.
Dovednost DecryptBlobFile z provozu přebírá jako vstupy adresu URL a token SAS pro každý objekt blob a výstupem staženého a dešifrovaného souboru pomocí kontraktu odkazu na soubor, který služba Azure AI Search očekává. Vzpomeňte si, že DecryptBlobFile potřebuje šifrovací klíč k provedení dešifrování. V rámci nastavení vytvoříte také zásadu přístupu, která uděluje funkci DecryptBlobFile přístup k šifrovacímu klíči ve službě Azure Key Vault.
Klikněte na tlačítko Nasadit do Azure na cílové stránce DecryptBlobFile, které otevře zadanou šablonu Resource Manageru na webu Azure Portal.
Zvolte stejné předplatné, ve kterém instance služby Azure Key Vault existuje (tento kurz nebude fungovat, pokud vyberete jiné předplatné).
Vyberte existující skupinu prostředků nebo vytvořte novou. Vyhrazená skupina prostředků usnadňuje pozdější vyčištění.
Vyberte Zkontrolovat a vytvořit, ujistěte se, že souhlasíte s podmínkami, a pak vyberte Vytvořit pro nasazení funkce Azure Functions.
Počkejte na dokončení nasazení.
Měli byste mít aplikaci Funkcí Azure, která obsahuje logiku dešifrování a prostředek Azure Storage, který bude ukládat data aplikací. V několika dalších krocích udělíte aplikaci oprávnění pro přístup k trezoru klíčů a shromáždíte informace, které budete potřebovat pro volání REST.
Udělení oprávnění ve službě Azure Key Vault
Na webu Azure Portal přejděte ke službě Azure Key Vault. Vytvořte zásadu přístupu ve službě Azure Key Vault, která uděluje přístup ke vlastní dovednosti.
V levém navigačním podokně vyberte Zásady přístupu a pak výběrem + Vytvořit spusťte Průvodce vytvořením zásad přístupu.
Na stránce Oprávnění v části Konfigurovat ze šablony vyberte Azure Data Lake Storage nebo Azure Storage.
Vyberte Další.
Na stránce Objekt zabezpečení vyberte instanci funkce Azure, kterou jste nasadili. Můžete ji vyhledat pomocí předpony prostředku, která byla použita k jejímu vytvoření v kroku 2, která má výchozí hodnotu předpony psdbf-function-app.
Vyberte Další.
V části Zkontrolovat a vytvořit vyberte Vytvořit.
Shromažďování informací o aplikaci
Na webu Azure Portal přejděte na funkci psdbf-function-app a poznamenejte si následující vlastnosti, které budete potřebovat pro volání REST:
Získejte adresu URL funkce, kterou najdete v části Základy na hlavní stránce funkce.
Získejte kód klíče hostitele, který najdete tak, že přejdete na klíče aplikace, kliknete na výchozí klíč a zkopírujete hodnotu.
Získání klíče api-key a adresy URL pro správce služby Azure AI Search
Přihlaste se k webu Azure Portal a na stránce Přehled vyhledávací služby získejte název vyhledávací služby. Název služby můžete potvrdit kontrolou adresy URL koncového bodu. Pokud by adresa URL vašeho koncového bodu byla
https://mydemo.search.windows.net
, název vaší služby by bylmydemo
.V části Klíče nastavení>získejte klíč správce pro úplná práva ke službě. Existují dva zaměnitelné klíče správce, které jsou k dispozici pro zajištění kontinuity podnikových procesů v případě, že potřebujete jeden převést. Primární nebo sekundární klíč můžete použít u požadavků pro přidávání, úpravy a odstraňování objektů.
Všechny požadavky vyžadují klíč rozhraní API v hlavičce každého požadavku odeslaného do vaší služby. Platný klíč vytváří vztah důvěryhodnosti na základě požadavku mezi aplikací, která požadavek odesílá, a službou, která ji zpracovává.
Nastavení klienta REST
Vytvořte proměnné pro koncové body a klíče:
Proměnná | Kde ho získat |
---|---|
admin-key |
Na stránce Klíče Search Azure AI. |
search-service-name |
Název Search Azure AI. Adresa URL je https://{{search-service-name}}.search.windows.net . |
storage-connection-string |
V účtu úložiště na kartě Přístupové klíče vyberte připojovací řetězec key1>. |
storage-container-name |
Název kontejneru objektů blob, který má zašifrované soubory, které se mají indexovat. |
function-uri |
Ve funkci Azure Functions v části Základy na hlavní stránce. |
function-code |
Ve funkci Azure Functions přejdete na klíče aplikace, kliknutím zobrazíte výchozí klíč a zkopírujete hodnotu. |
api-version |
Nechte 2020-06-30. |
datasource-name |
Ponechejte jako šifrované objekty blob-ds. |
index-name |
Ponechejte jako šifrované objekty blob-idx. |
skillset-name |
Ponechejte jako šifrované objekty blob-ss. |
indexer-name |
Ponechejte jako šifrované objekty blob-ixr. |
Kontrola a spuštění jednotlivých požadavků
K vytvoření objektů kanálu rozšiřování použijte požadavky HTTP:
Požadavek PUT na vytvoření indexu: Tento vyhledávací index obsahuje data, která Azure AI Search používá a vrací.
Požadavek POST na vytvoření zdroje dat: Tento zdroj dat určuje připojení k vašemu účtu úložiště obsahujícímu šifrované soubory objektů blob.
Požadavek PUT na vytvoření sady dovedností: Sada dovedností určuje definici vlastní dovednosti pro funkci Azure Functions, která dešifruje data souboru objektů blob, a documentExtractionSkill k extrahování textu z každého dokumentu po dešifrování.
Požadavek PUT na vytvoření indexeru: Spuštění indexeru načte objekty blob, použije sadu dovedností a indexy a uloží výsledky. Tento požadavek musíte spustit jako poslední. Vlastní dovednost v sadě dovedností vyvolá logiku dešifrování.
Monitorování indexování
Indexování a rozšiřování se zahájí, jakmile odešlete žádost o vytvoření indexeru. V závislosti na tom, kolik dokumentů je v účtu úložiště, může indexování chvíli trvat. Pokud chcete zjistit, jestli je indexer stále spuštěný, odešlete žádost o získání stavu indexeru a zkontrolujte odpověď a zjistěte, jestli je indexer spuštěný, nebo zobrazit informace o chybách a upozorněních.
Pokud používáte úroveň Free, očekává se následující zpráva: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters"
. Tato zpráva se zobrazí, protože indexování objektů blob na úrovni Free má limit 32 tisíc při extrakci znaků. Tuto zprávu pro tuto datovou sadu na vyšších úrovních neuvidíte.
Hledání obsahu
Po dokončení provádění indexeru můžete spustit některé dotazy, abyste ověřili, že se data úspěšně dešifrovala a indexovala. Přejděte na Search Azure AI na webu Azure Portal a pomocí Průzkumníka služby Search spusťte dotazy nad indexovanými daty.
Vyčištění prostředků
Když pracujete ve vlastním předplatném, je na konci projektu vhodné odebrat prostředky, které už nepotřebujete. Prostředky, které necháte spuštěné, vás stojí peníze. Prostředky můžete odstraňovat jednotlivě nebo můžete odstranit skupinu prostředků, a odstranit tak celou sadu prostředků najednou.
Prostředky můžete najít a spravovat na webu Azure Portal pomocí odkazu Všechny prostředky nebo skupiny prostředků v levém navigačním podokně.
Další kroky
Teď, když jste úspěšně indexovali šifrované soubory, můžete iterovat v tomto kanálu přidáním dalších dovedností. To vám umožní rozšířit a získat další přehledy o vašich datech.
Pokud pracujete s doubly šifrovanými daty, možná budete chtít prozkoumat funkce šifrování indexu dostupné ve službě Azure AI Search. I když indexer potřebuje dešifrovaná data pro účely indexování, jakmile index existuje, může být zašifrován v indexu vyhledávání pomocí klíče spravovaného zákazníkem. Tím zajistíte, aby se vaše data při nečinnosti vždy zašifrovala. Další informace najdete v tématu Konfigurace klíčů spravovaných zákazníkem pro šifrování dat ve službě Azure AI Search.