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
- Nainstalujte Visual Studio Code na jedné z podporovaných platforem.
- Rozhraní příkazového řádku Azure. Můžete ho použít v Azure Cloud Shellu nebo ho nainstalovat místně.
- Účet úložiště Azure a objekt blob úložiště. Pokud účet Azure Storage nemáte, vytvořte si ho.
- V této příručce se předpokládá, že znáte koncepty uvedené v příručce pro vývojáře Functions a jak se připojit ke službám ve službě Functions.
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.txt s 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,
BlobStorageInputFunc/function.json
Otevřete soubor, zkontrolujte, zda byla do tohoto souboru přidána nová vazbatype: blob
direction: in
.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.
- 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.
- 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ě. - 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.
function.json
Otevřete soubor v místním projektu, změňte hodnotuconnection
vlastnostibindings
tak, aby bylaMyBlobInputConnection
.- 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.
- Podle kurzu nasaďte funkci do Azure.
- 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.
- Na webu Azure Portal otevřete prostředek aplikace funkcí a vyberte Odstranit.
- 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.