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 rychlém startu pomocí editoru Visual Studio Code vytvoříte aplikaci, která reaguje na události v kontejneru Blob Storage. Po místním otestování kódu pomocí emulátoru ho nasadíte do nové aplikace funkcí bez serveru spuštěné v plánu Flex Consumption ve službě Azure Functions.
Projekt používá rozšíření Azure Developer CLI (azd) se sadou Visual Studio Code ke zjednodušení inicializace a ověřování kódu projektu místně a také k nasazení kódu do Azure. Toto nasazení se řídí aktuálními osvědčenými postupy pro zabezpečená a škálovatelná nasazení Azure Functions.
Tento článek podporuje verzi 4 programovacího modelu Node.js pro Azure Functions.
Tento článek podporuje verzi 2 programovacího modelu Pythonu pro Azure Functions.
Požadavky
Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
Visual Studio Code na jedné z podporovaných platforem.
Rozšíření Azure Functions pro Visual Studio Code Toto rozšíření vyžaduje Azure Functions Core Tools. Pokud tento nástroj není k dispozici místně, pokusí se rozšíření nainstalovat pomocí instalačního programu založeného na balíčku. Balíček Core Tools můžete také nainstalovat nebo aktualizovat spuštěním
Azure Functions: Install or Update Azure Functions Core Toolsz palety příkazů. Pokud nemáte na místním počítači nainstalovaný npm nebo Homebrew, musíte místo toho nainstalovat nebo aktualizovat nástroje Core Tools ručně.
Rozšíření jazyka C# pro Visual Studio Code
Java Development Kit, verze 8, 11, 17 nebo 21 (Linux).
Apache Maven verze 3.0 nebo novější.
Balíček rozšíření Java
-
Node.js 18.x nebo vyšší. Pomocí příkazu
node --versionzkontrolujte svou verzi.
Verze Pythonu podporované službou Azure Functions Další informace najdete v tématu Postup instalace Pythonu.
- Rozšíření Azure Developer CLI pro Visual Studio Code
Rozšíření REST Client nebo ekvivalentní nástroj REST, který používáte k bezpečnému provádění HTTP požadavků.
Inicializace projektu
azd init Pomocí příkazu z palety příkazů vytvořte místní projekt kódu Azure Functions ze šablony.
V editoru Visual Studio Code otevřete složku nebo pracovní prostor, ve kterém chcete vytvořit projekt.
Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz
Azure Developer CLI (azd): Initialize App (init)a pak zvolte Vybrat šablonu.Při inicializaci aktuální složky nebo pracovního prostoru může dojít k mírnému zpoždění
azd.
Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte
Azure Functions C# Event Grid Blob Trigger using Azure Developer CLI.Po zobrazení výzvy v terminálu zadejte jedinečný název prostředí, například
blobevents-dotnet.Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru.
Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte
Azure Functions Python Event Grid Blob Trigger using Azure Developer CLI.Po zobrazení výzvy v terminálu zadejte jedinečný název prostředí, například
blobevents-python.Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru.
Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte
Azure Functions TypeScript Event Grid Blob Trigger using Azure Developer CLI.Po zobrazení výzvy zadejte jedinečný název prostředí, například
blobevents-typescript.Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru.
Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte
Azure Functions Java Event Grid Blob Trigger using Azure Developer CLI.Po zobrazení výzvy zadejte jedinečný název prostředí, například
blobevents-java.Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru.
Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte
Azure Functions PowerShell Event Grid Blob Trigger using Azure Developer CLI.Po zobrazení výzvy zadejte jedinečný název prostředí, například
blobevents-powershell.Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru.
V azdprostředí udržuje jedinečný kontext nasazení pro vaši aplikaci a můžete definovat více než jeden. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.
Přidání souboru local.settings.json
Funkce potřebuje local.settings.json soubor ke konfiguraci hostitele při místním spuštění.
Spuštěním tohoto příkazu přejděte do
srcsložky aplikace:cd src
Ve složce, která obsahuje tato data JSON, vytvořte soubor s názvem local.settings.json
src:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Ve složce, která obsahuje tato data JSON, vytvořte soubor s názvem local.settings.json
src:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "java", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Ve složce, která obsahuje tato data JSON, vytvořte soubor s názvem local.settings.json
src:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Ve složce, která obsahuje tato data JSON, vytvořte soubor s názvem local.settings.json
src:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "powershell", "FUNCTIONS_WORKER_RUNTIME_VERSION": "7.2", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Ve složce, která obsahuje tato data JSON, vytvořte soubor s názvem local.settings.json
src:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Vytvoření a aktivace virtuálního prostředí
src Ve složce spusťte tyto příkazy pro vytvoření a aktivaci virtuálního prostředí s názvem .venv:
python3 -m venv .venv
source .venv/bin/activate
Pokud Python neinstaluje balíček venv do distribuce Linuxu, spusťte následující příkaz:
sudo apt-get install python3-venv
Nastavení emulátoru místního úložiště
Před vytvořením a použitím prostředků Azure pomocí emulátoru Azurite spusťte projekt kódu místně.
Pokud jste to ještě neudělali, nainstalujte Azurite.
Stiskněte klávesu F1. Na paletě příkazů vyhledejte a spusťte příkaz
Azurite: Startpro spuštění emulátoru místního úložiště.V oblasti Azure rozbalte Pracovní prostor>Připojené účty úložišť> a Místní emulátor, klikněte pravým tlačítkem myši (na Macu Ctrl-klikněte) na Kontejnery objektů Blob, vyberte Vytvořit kontejner objektů Blob..., a vytvořte tyto dva kontejnery úložiště Blob v místním emulátoru:
-
unprocessed-pdf: kontejner, který spouštěč monitoruje pro události úložiště. -
processed-pdf: kontejner, do kterého funkce odesílá zpracované blobové objekty jako výstup.
-
Rozbalte Blob Containers, klikněte pravým tlačítkem (Ctrl klikněte na Mac) na nezpracovaný-pdf, vyberte Nahrát soubory..., stiskněte Enter pro přijetí kořenového adresáře a nahrajte soubory PDF ze
datasložky projektu.
Při místním spuštění můžete pomocí rest aktivovat funkci simulací funkce, která přijímá zprávu z odběru událostí.
Místní spuštění funkce
Visual Studio Code se integruje s nástroji Azure Functions Core, které vám umožní spustit tento projekt na místním vývojovém počítači pomocí emulátoru Azurite.
PDFProcessorSTORAGE Proměnná prostředí definuje připojení k účtu úložiště, které je také nastavené v souboru "UseDevelopmentStorage=true" local.settings.json při spuštění lokalně.
Spusťte tento příkaz ze
srcsložky projektu v terminálu nebo příkazovém řádku:func startmvn clean package mvn azure-functions:runnpm install func startnpm install npm startKdyž se hostitel Functions spustí, zapíše název triggeru a typ triggeru do výstupu terminálu. Ve službě Functions obsahuje kořenová složka projektu soubor host.json.
S Core Tools stále běžícími v Terminálu, otevřete
test.httpsoubor ve svém projektu a vyberte Odeslat požadavek, abyste spustiliProcessBlobUploadfunkci odesláním testovací blob události do webhooku blob události.Tento krok simuluje příjem události z odběru událostí při místním spuštění a měl by se zobrazit požadavek a zpracovávané informace o souboru napsané v protokolech. Pokud nepoužíváte REST Client, musíte použít jiný zabezpečený nástroj REST k volání koncového bodu s datovou částí v
test.http.V oblasti pracovního prostoru kontejneru objektů blob rozbalte processed-pdf a ověřte, že funkce zpracovala soubor PDF a zkopírovala ho s předponou
processed-.Až budete hotovi, ukončete proces hostitele stisknutím ctrl+C v okně
func.exeterminálu.
Kontrola kódu (volitelné)
Můžete zkontrolovat kód, který definuje trigger objektu blob Event Gridu v souboru projektu ProcessBlobUpload.cs. Funkce ukazuje, jak:
- Použití
BlobTriggersSource = BlobTriggerSource.EventGridpro zpracování téměř v reálném čase - Připojit se k
BlobClientblobu zdroje aBlobContainerClientblobu cíle - Zpracování obsahu objektu blob a jeho zkopírování do jiného kontejneru pomocí streamů
Můžete zkontrolovat kód, který definuje trigger objektu blob Event Gridu v souboru projektu function_app.py. Funkce ukazuje, jak:
- Použití
@app.blob_triggerssource="EventGrid"pro zpracování téměř v reálném čase - Přístup k obsahu objektu blob pomocí parametru
InputStream - Kopírování zpracovaných souborů do cílového kontejneru pomocí sady AZURE Storage SDK
Můžete zkontrolovat kód, který definuje trigger objektu blob Event Gridu v souboru projektu processBlobUpload.ts. Funkce ukazuje, jak:
- Použití
app.storageBlob()ssource: 'EventGrid'pro zpracování téměř v reálném čase - Přístup k obsahu objektů blob pomocí sady Node.js Azure Storage SDK
- Asynchronní zpracování a kopírování souborů do cílového kontejneru
Můžete zkontrolovat kód, který definuje spouštěč blobu Event Gridu v souboru projektu ProcessBlobUpload.java. Funkce ukazuje, jak:
- Použití
@BlobTriggerssource = "EventGrid"pro zpracování téměř v reálném čase - Přístup k obsahu objektu blob pomocí
BlobInputStreamparametru - Kopírování zpracovaných souborů do cílového kontejneru pomocí sady Azure Storage SDK pro Javu
Můžete zkontrolovat kód, který definuje trigger objektu blob Event Gridu v souboru projektu ProcessBlobUpload/run.ps1 a odpovídající function.json. Funkce ukazuje, jak:
- Konfigurace triggeru objektu blob v
"source": "EventGrid"function.json pro zpracování téměř v reálném čase - Přístup k obsahu objektů blob pomocí rutin Azure Storage v PowerShellu
- Zpracování a kopírování souborů do cílového kontejneru pomocí modulů Azure PowerShellu
Jakmile kód funkce zkontrolujete a ověříte místně, je čas projekt publikovat do Azure.
Vytvoření prostředků Azure a nasazení
Pomocí příkazu azd up vytvořte aplikace funkcí v plánu Flex Consumption spolu s dalšími požadovanými prostředky Azure, včetně odběru událostí. Jakmile je infrastruktura připravená, azd nasadí kód projektu také do nové aplikace funkcí v Azure.
V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Vyhledejte a spusťte příkaz
Azure Developer CLI (azd): Sign In with Azure Developer CLIa přihlaste se pomocí svého účtu Azure.V kořenovém adresáři projektu stisknutím klávesy F1 otevřete paletu příkazů. Vyhledejte a spusťte příkaz
Azure Developer CLI (azd): Provision and Deploy (up), který vytvoří požadované prostředky Azure a nasadí váš kód.Po zobrazení výzvy v okně terminálu zadejte tyto požadované parametry nasazení:
Podnět Description Vyberte předplatné Azure, které chcete použít. Zvolte předplatné, pro které chcete vytvořit prostředky. Název prostředí Prostředí, které slouží k zachování jedinečného kontextu nasazení pro vaši aplikaci. Umístění Azure Oblast Azure, ve které se má vytvořit skupina prostředků, která obsahuje nové prostředky Azure. Zobrazí se pouze oblasti, které aktuálně podporují plán Flex Consumption. Příkaz
azd uppomocí odpovědí na tyto výzvy s konfiguračními soubory Bicep vytvoří a nakonfiguruje tyto požadované prostředky Azure podle nejnovějších osvědčených postupů:- Plán Flex Consumption a aplikace funkcí
- Účet služby Azure Storage s kontejnery objektů blob
- Application Insights (doporučeno)
- Zásady přístupu a role pro váš účet
- Odběr Event Grid pro události Blob
- Připojení mezi službami pomocí spravovaných identit (místo uložených připojovacích řetězců)
Po úspěšném dokončení příkazu se vaše aplikace spustí v Azure s předplatným událostí nakonfigurovaným tak, aby aktivovala vaši funkci při přidání objektů blob do kontejneru
unprocessed-pdf.Poznamenejte si
AZURE_STORAGE_ACCOUNT_NAMEiAZURE_FUNCTION_APP_NAMEve výstupu. Tyto názvy jsou jedinečné pro váš účet úložiště a aplikaci funkcí v Azure.
Ověření nasazené funkce
V editoru Visual Studio Code stiskněte klávesu F1. Na paletě příkazů vyhledejte a spusťte příkaz
Azure Storage: Upload Files.... Přijměte kořenový adresář a jako předtím nahrajte jeden nebo více souborů PDF zedatasložky projektu.Po zobrazení výzvy vyberte název nového účtu úložiště (z
AZURE_STORAGE_ACCOUNT_NAME). Vyberte kontejnery objektů BLOB>nezpracované-pdf.Stiskněte klávesu F1. Na paletě příkazů vyhledejte a spusťte příkaz
Azure Storage: Open in Explorer. Vyberte stejný účet úložiště, >Blob Containers>processed-pdf, a pak otevřete v novém okně.V Průzkumníku ověřte, že vaše funkce zpracovala soubory PDF, které jste nahráli. Výstup se zapíše do kontejneru
processed-pdfs předponouprocessed-.
Trigger objektu blob služby Event Grid zpracovává soubory během několika sekund od nahrání. Tato rychlost ukazuje možnosti tohoto přístupu téměř v reálném čase v porovnání s tradičními triggery objektů blob založenými na dotazování.
Opětovné nasazení kódu
azd up Spusťte příkaz tolikrát, kolikrát potřebujete zřizovat prostředky Azure a nasazovat aktualizace kódu do aplikace funkcí.
Poznámka:
Nasazené soubory kódu se vždy přepíšou nejnovějším balíčkem pro nasazení.
Vaše počáteční odpovědi na azd výzvy a všechny proměnné prostředí vygenerované azd pomocí se ukládají místně ve vašem pojmenovaném prostředí.
azd env get-values Pomocí příkazu zkontrolujte všechny proměnné ve vašem prostředí, které se použily při vytváření prostředků Azure.
Vyčistěte zdroje
Po dokončení práce s aplikací funkcí a souvisejícími prostředky pomocí tohoto příkazu odstraňte aplikaci funkcí a související prostředky z Azure. Tato akce vám pomůže vyhnout se dalším nákladům:
azd down --no-prompt
Poznámka:
Tato --no-prompt možnost dává azd pokyn k odstranění skupiny prostředků bez potvrzení od vás.
Tento příkaz nemá vliv na místní projekt kódu.