Sdílet prostřednictvím


Kurz: Funkce Pythonu se službou Azure Blob Storage jako vstup

V tomto kurzu se dozvíte, jak nakonfigurovat funkci Pythonu se službou Azure Blob Storage jako vstup provedením následujících úloh:

  • Pomocí editoru Visual Studio Code vytvořte projekt funkcí Pythonu.
  • Změňte kódy pro přidání vazby vstupní funkce objektu blob úložiště.
  • Pomocí editoru Visual Studio Code spusťte funkci místně.
  • Pomocí Azure CLI vytvořte připojení mezi funkcí Azure Functions a objektem blob úložiště pomocí konektoru služby.
  • K nasazení funkce použijte Visual Studio.

Přehled součástí projektu funkcí v tomto kurzu:

Komponenta projektu Výběr / řešení
Zdrojová služba Funkce Azure
Cílová služba Azure Storage Blob
Vazba funkce Trigger HTTP, objekt blob úložiště jako vstup
Typ ověřování místního projektu Připojovací řetězec
Typ ověřování cloudových funkcí Spravovaná identita přiřazená systémem

Upozorňující

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.

Požadavky

Vytvoření projektu funkce Pythonu

Podle kurzu vytvořte místní projekt Azure Functions a na příkazovém řádku zadejte následující informace:

Instrukce Výběr
Výběr jazyka Zvolte Python. (programovací jazykový model v1)
Výběr interpreta Pythonu pro vytvoření virtuálního prostředí Zvolte upřednostňovaný interpret Pythonu. Pokud se možnost nezobrazí, zadejte úplnou cestu k binárnímu souboru Pythonu.
Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
Zadejte název funkce. Zadejte BlobStorageInputFunc.
Úroveň autorizace Zvolte Anonymous, který umožňuje každému volat váš koncový bod funkce. 

Vytvořili jste projekt funkce Pythonu s triggerem HTTP.

Přidání vstupní vazby služby Blob Storage

Atributy vazby jsou definovány v souboru function.json pro danou funkci. Pokud chcete vytvořit vazbu, klikněte pravým tlačítkem myši (Ctrl+klikněte na macOS) function.json soubor ve složce funkce a zvolte Přidat vazbu... . Podle pokynů definujte následující vlastnosti vazby pro novou vazbu:

Instrukce Hodnota Popis
Výběr směru vazby in Vazba je vstupní vazba.
Výběr vazby se směrem... Azure Blob Storage Vazba je vazba objektu blob služby Azure Storage.
Název použitý k identifikaci této vazby v kódu inputBlob Název, který identifikuje parametr vazby odkazovaný v kódu.
Cesta v rámci vašeho účtu úložiště, ze kterého se bude objekt blob číst testcontainer/test.txt Cesta objektu blob, kterou funkce čte jako vstup. Připravte soubor s názvem test.txts obsahem Hello, World! souboru. Vytvořte kontejner s názvem testcontainer a nahrajte soubor do kontejneru.
Výběr nastavení z local.setting.json Create new local app settings Vyberte účet úložiště, který vaše funkce přečte jako vstup. Visual Studio Code načte připojovací řetězec pro připojení k místnímu projektu.

Chcete-li zkontrolovat úspěšné přidání vazby,

  1. BlobStorageInputFunc/function.json Otevřete soubor, zkontrolujte, zda byla do tohoto souboru přidána nová vazba type: blob direction: in.
  2. local.settings.json Otevřete soubor a zkontrolujte, jestli do tohoto souboru byla přidána nová dvojice <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> klíč-hodnota, která obsahuje váš účet úložiště, připojovací řetězec.

Po přidání vazby aktualizujte kódy funkcí tak, aby tuto vazbu spotřebovávají nahrazením BlobStorageInputFunc/__init__.py souboru Pythonu.

import logging
import azure.functions as func

def main(req: func.HttpRequest, inputBlob: bytes) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    return func.HttpResponse('The triggered function executed successfully. And read blob content: {}'.format(inputBlob))

Místní spuštění funkce

Podle kurzu spusťte funkci místně a ověřte vstup objektu blob.

  1. Pokud se zobrazí výzva k připojení k úložišti, vyberte účet úložiště, který jste použili při vytváření prostředku funkce Azure Functions. Je určená pro interní použití modulu runtime funkce Azure Functions a nemusí se nutně shodovat s modulem, který používáte pro vstup.
  2. Pokud chcete funkci spustit místně, stiskněte klávesu <kbd>F5 </kbd> nebo vyberte ikonu Spustit a Ladit na panelu aktivit na levé straně.
  3. Pokud chcete ověřit, že funkce může číst objekt blob, klikněte pravým tlačítkem Execute Function Now... myši na funkci v pracovním prostoru editoru Visual Studio Code a zkontrolujte odpověď funkce. Zpráva odpovědi by měla obsahovat obsah v souboru objektu blob.

Vytvoření připojení pomocí konektoru Service Connector

Právě jste spustili projekt a ověřili jste funkci místně a místní projekt se připojí k objektu blob úložiště pomocí připojovací řetězec.

Teď se dozvíte, jak nakonfigurovat připojení mezi funkcí Azure Functions a službou Azure Blob Storage, aby vaše funkce po nasazení do cloudu mohl číst objekt blob. V cloudovém prostředí si ukážeme, jak ověřit pomocí spravované identity přiřazené systémem.

  1. function.json Otevřete soubor v místním projektu, změňte hodnotu connection vlastnosti bindings tak, aby byla MyBlobInputConnection.
  2. Spuštěním následujícího příkazu Azure CLI vytvořte připojení mezi vaší funkcí Azure a službou Azure Storage.
az functionapp connection create storage-blob --source-id "<your-function-resource-id>" --target-id "<your-storage-blob-resource-id>" --system-identity --customized-keys AZURE_STORAGEBLOB_RESOURCEENDPOINT=MyBlobInputConnection__serviceUri
  • --source-id formát: /subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id formát: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/blobServices/default

Vytvořili jste připojení mezi funkcí Azure Functions a Azure Blob Storage pomocí konektoru služby s spravovanou identitou přiřazenou systémem.

Service Connector nakonfiguroval proměnnou MyBlobInputConnection__serviceUri v nastavení aplikace funkce používané modulem runtime vazby funkcí pro připojení k úložišti, aby funkce mohl číst data z úložiště objektů blob. Další informace o tom, jak Service Connector pomáhá službě Azure Functions připojovat se ke službám.

Nasazení funkce do Azure

Teď můžete funkci nasadit do Azure a ověřit, že vstupní vazba objektu blob úložiště funguje.

  1. Podle kurzu nasaďte funkci do Azure.
  2. Pokud chcete ověřit, že funkce může číst objekt blob, klikněte pravým tlačítkem Execute Function Now... na funkci v zobrazení PROSTŘEDKŮ editoru Visual Studio Code a zkontrolujte odpověď funkce. Zpráva odpovědi by měla obsahovat obsah v souboru objektu blob.

Odstraňování potíží

Pokud dojde k nějakým chybám souvisejícím s hostitelem úložiště, napříkladNo such host is known (<account-name>.blob.core.windows.net:443), musíte zkontrolovat, jestli připojovací řetězec, které používáte pro připojení ke službě Azure Storage, obsahuje koncový bod objektu blob, nebo ne. Pokud ne, přejděte do Azure Storage na webu Azure Portal, zkopírujte připojovací řetězec z Access keys okna a nahraďte hodnoty.

Pokud k chybě dojde při místním spuštění projektu, zkontrolujte local.settings.json soubor.

Pokud k chybě dojde, když funkci nasadíte do cloudu (v tomto případě nasazení funkce obvykle selže Syncing triggers ), zkontrolujte nastavení aplikace vaší funkce.

Vyčištění prostředků

Pokud tento projekt nebudete dál používat, odstraňte prostředek aplikace Funkcí, který jste vytvořili dříve.

  1. Na webu Azure Portal otevřete prostředek aplikace funkcí a vyberte Odstranit.
  2. Zadejte název aplikace a potvrďte to tak, že vyberete Odstranit .

Další kroky

Další informace o konceptech konektoru služeb a o tom, jak azure Functions pomáhá připojit se k dalším cloudovým službám, najdete v následujících článcích.