Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 vysokou míru 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. Podle pokynů na obrazovce zadejte tyto 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. |
Pomocí těchto informací Visual Studio Code vygeneruje 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 na 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í místního projektu. |
Chcete-li zkontrolovat úspěšné přidání vazby,
-
BlobStorageInputFunc/function.jsonOtevřete soubor a zkontrolujte, že se do tohoto souboru přidala nová vazbatype: blobdirection: in. - Otevřete soubor
local.settings.jsona zkontrolujte, že do tohoto souboru byl přidán nový pár klíč-hodnota<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>obsahující připojovací řetězec vašeho účtu úložiště.
Po přidání vazby aktualizujte kód funkce tak, aby tuto vazbu spotřebovával nahrazením BlobStorageInputFunc/__init__.py souboru následujícím Python souborem:
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 zvolili při vytváření prostředku funkce Azure Functions. Tento účet úložiště se používá pro interní použití funkce Azure Functions a nemusí se nutně shodovat s účtem úložiště, který používáte pro vstup.
- Pokud chcete funkci spustit místně, stiskněte klávesu F5 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 myši
Execute Function Now...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
V posledním kroku jste funkci spustili lokálně a ověřili, že se váš místní projekt připojuje k blobu úložiště pomocí připojovacího řetězce.
Dále se dozvíte, jak nakonfigurovat připojení mezi funkcí Azure Functions a Azure Blob Storage. Jakmile je vaše funkce nasazená do cloudu, umožní vám toto připojení číst objekt blob. Pak v cloudovém prostředí předvedeme, jak ověřit pomocí spravované identity přiřazené systémem.
-
function.jsonOtevřete soubor v místním projektu a změňte hodnotuconnectionvlastnostibindingstak, 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-idformát:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site} -
--target-idformát:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/blobServices/default
Tento krok vytvoří 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
Nyní můžete nasadit svou funkci do Azure a ověřit, že vstupní vazba blobu ú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 myši
Execute Function Now...na funkci v zobrazení Visual Studio Code RESOURCES 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 na webu Azure Portal do služby Azure Storage, zkopírujte připojovací řetězec z Access keys karty 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.