Sdílet prostřednictvím


Kurz: Aktivace Azure Functions v kontejnerech objektů blob pomocí odběru událostí

Předchozí verze služby Azure Functions Blob Storage aktivují dotazování vašeho kontejneru úložiště na změny. Novější verze rozšíření Blob Storage (5.x+) místo toho používají odběr událostí Event Gridu v kontejneru. Toto odběr událostí snižuje latenci aktivací funkce okamžitě, jakmile dojde ke změnám v odebíraném kontejneru.

Tento článek ukazuje, jak vytvořit funkci, která se spouští na základě událostí vyvolaých při přidání objektu blob do kontejneru. Visual Studio Code slouží k místnímu vývoji a k ověření kódu před nasazením projektu do Azure.

  • Vytvořte funkci aktivovanou službou Blob Storage založenou na událostech v novém projektu.
  • Ověřte místně v editoru Visual Studio Code pomocí emulátoru Azurite.
  • Vytvořte kontejner úložiště objektů blob v novém účtu úložiště v Azure.
  • Vytvořte aplikaci funkcí v plánu Flex Consumption.
  • Vytvořte odběr události pro nový kontejner objektů blob.
  • Nasaďte a ověřte kód funkce v Azure.

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.

Tento článek vytvoří aplikaci jazyka C#, která běží v izolovaném pracovním režimu, která podporuje .NET 8.0.

Tip

V tomto kurzu se dozvíte, jak vytvořit aplikaci, která běží v plánu Flex Consumption. Plán Flex Consumption podporuje pouze verzi triggeru Blob Storage založenou na událostech.

Požadavky

Poznámka:

Rozšíření Azure Storage pro Visual Studio Code je ve verzi Preview.

Vytvoření funkce aktivované objektem blob

Když vytvoříte funkci triggeru blob Storage pomocí editoru Visual Studio Code, vytvoříte také nový projekt. Funkci musíte upravit tak, aby spotřebovala odběr událostí jako zdroj, a ne abyste používali běžný kontejner s dotazovaným dotazem.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů, zadejte Azure Functions: Create Function...a vyberte Vytvořit nový projekt.

  2. V pracovním prostoru projektu vyberte umístění adresáře. Ujistěte se, že buď vytvoříte novou složku, nebo zvolíte prázdnou složku pro pracovní prostor projektu.

    Nevybírejte složku projektu, která už je součástí pracovního prostoru.

  3. Na příkazovém řádku zadejte následující informace:

    Instrukce Akce
    Výběr jazyka Vyberte možnost C#.
    Výběr modulu runtime .NET Vyberte možnost .NET 8.0 Isolated LTS.
    Výběr šablony pro první funkci projektu Vyberte možnost Azure Blob Storage trigger (using Event Grid).
    Zadejte název funkce. Zadejte EventGridBlobTrigger.
    Zadání oboru názvů Zadejte My.Functions.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného V případě potřeby vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.
    Instrukce Akce
    Výběr jazyka Vyberte možnost Python.
    Výběr programovacího modelu Pythonu Vyberte Model V2
    Výběr interpreta Pythonu pro vytvoření virtuálního prostředí Vyberte preferovaný interpret Pythonu. Pokud se možnost nezobrazí, zadejte úplnou cestu k binárnímu souboru Pythonu.
    Výběr šablony pro první funkci projektu Vyberte možnost Blob trigger. (Šablona založená na událostech ještě není k dispozici.)
    Zadejte název funkce. Zadejte EventGridBlobTrigger.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného V případě potřeby vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.
    Instrukce Akce
    Výběr jazyka Vyberte možnost Java.
    Výběr verze Javy Vyberte nebo Java 11vyberte Java 8 verzi Javy, na které běží vaše funkce v Azure a kterou jste místně ověřili.
    Zadejte ID skupiny. Vyberte možnost com.function.
    Zadejte ID artefaktu. Vyberte EventGridBlobTrigger (nebo výchozí).
    Zadejte verzi. Vyberte možnost 1.0-SNAPSHOT.
    Zadejte název balíčku. Vyberte možnost com.function.
    Zadejte název aplikace. Přijměte vygenerovaný název začínající na EventGridBlobTrigger.
    Výběr nástroje pro sestavení pro projekt Java Vyberte možnost Maven.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.

    Pro vás se vytvoří funkce aktivovaná protokolem HTTP (HttpExample). Tuto funkci nebudete používat a musíte místo toho vytvořit novou funkci.

    Instrukce Akce
    Výběr jazyka pro projekt funkce Vyberte možnost TypeScript.
    Výběr programovacího modelu TypeScriptu Vyberte možnost Model V4.
    Výběr šablony pro první funkci projektu Vyberte možnost Azure Blob Storage trigger (using Event Grid).
    Zadejte název funkce. Zadejte EventGridBlobTrigger.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného V případě potřeby vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.
    Instrukce Akce
    Výběr jazyka pro projekt funkce Vyberte možnost JavaScript.
    Výběr programovacího modelu JavaScriptu Vyberte možnost Model V4.
    Výběr šablony pro první funkci projektu Vyberte možnost Azure Blob Storage trigger (using Event Grid).
    Zadejte název funkce. Zadejte eventGridBlobTrigger.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného V případě potřeby vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.
    Instrukce Akce
    Výběr jazyka pro projekt funkce Vyberte možnost PowerShell.
    Výběr šablony pro první funkci projektu Vyberte možnost Azure Blob Storage trigger (using Event Grid).
    Zadejte název funkce. Zadejte EventGridBlobTrigger.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného V případě potřeby vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.
    Vyberte, jak chcete projekt otevřít. Vyberte možnost Open in current window.
  1. Na paletě příkazů zadejte Azure Functions: Create Function... a vyberte EventGridBlobTrigger. Pokud tuto šablonu nevidíte, nejprve vyberte Změnit filtr šablony>Vše.

  2. Na příkazovém řádku zadejte následující informace:

    Instrukce Akce
    Zadejte název balíčku. Vyberte možnost com.function.
    Zadejte název funkce. Zadejte EventGridBlobTrigger.
    Výběr nastavení z local.settings.json Vyberte možnost Create new local app setting.
    Výběr předplatného Vyberte své předplatné.
    Výběr účtu úložiště Pro místní úložiště použijte emulátor Azurite.
    Cesta v rámci vašeho účtu úložiště, kterou bude trigger monitorovat Přijměte výchozí hodnotu samples-workitems.

Teď máte funkci, kterou můžou aktivovat události v kontejneru Blob Storage.

Aktualizace zdroje triggeru

Musíte přepnout zdroj triggeru z výchozího zdroje triggeru objektu blob (dotazování kontejneru) na zdroj odběru událostí.

  1. Otevřete soubor projektu function_app.py. Zobrazí se definice funkce EventGridBlobTrigger s použitým dekorátorem blob_trigger .

  2. Aktualizujte dekorátor přidáním source = "EventGrid". Vaše funkce by teď měla vypadat nějak takto:

    @app.blob_trigger(arg_name="myblob", source="EventGrid", path="samples-workitems",
                               connection="<STORAGE_ACCOUNT>") 
    def EventGridBlobTrigger(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob"
                f"Name: {myblob.name}"
                f"Blob Size: {myblob.length} bytes")
    

    V této definici označuje source = "EventGrid", že se předplatné událostí kontejneru objektů blob samples-workitems používá jako zdroj události, která spouští spouštěč.

(Volitelné) Kontrola kódu

Otevřete vygenerovaný EventGridBlobTrigger.cs soubor. Zobrazí se definice EventGridBlobTrigger funkce, která vypadá nějak takto:

[Function(nameof(EventGridBlobTriggerCSharp))]
public async Task Run([BlobTrigger("PathValue/{name}", Source = BlobTriggerSource.EventGrid, Connection = "ConnectionValue")] Stream stream, string name)
{
    using var blobStreamReader = new StreamReader(stream);
    var content = await blobStreamReader.ReadToEndAsync();
    _logger.LogInformation("C# Blob Trigger (using Event Grid) processed blob\n Name: {name} \n Data: {content}", name, content);
}

V této definici Source = BlobTriggerSource.EventGrid označuje, že odběr události kontejneru objektů blob (v příkladu PathValue) je zdrojem události, která spouští trigger.

Otevřete vygenerovaný EventGridBlobTrigger.java soubor. Zobrazí se definice EventGridBlobTrigger funkce, která vypadá nějak takto:

    @FunctionName("EventGridBlobTrigger")
    @StorageAccount("<STORAGE_ACCOUNT>")
    public void run(
        @BlobTrigger(name = "content", source = "EventGrid", path = "samples-workitems/{name}", dataType = "binary") byte[] content,
        @BindingName("name") String name,
        final ExecutionContext context
    ) {
        context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n  Size: " + content.length + " Bytes");
    }

V této definici source = EventGrid označuje, že odběr události kontejneru samples-workitems objektů blob je zdrojem události, která spouští spouštěč.

EventGridBlobTrigger Ve složce otevřete function.json soubor a najděte definici vazby, jako je tato:typeblobTriggersourceEventGrid

{
    "bindings": [
        {
            "name": "InputBlob",
            "type": "blobTrigger",
            "direction": "in",
            "path": "samples-workitems/{name}",
            "source": "EventGrid",
            "connection":""
        }
    ]
}

Označuje path, že samples-workitems kontejner objektů blob je zdrojem události spouštějící trigger.

Otevřete vygenerovaný EventGridBlobTrigger.js soubor. Zobrazí se definice funkce, která vypadá nějak takto:

const { app } = require('@azure/functions');

app.storageBlob('storageBlobTrigger1', {
    path: 'samples-workitems/{name}',
    connection: 'MyStorageAccountAppSetting',
    source: 'EventGrid',
    handler: (blob, context) => {
        context.log(
            `Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
        );
    },
});

V této definici sourceEventGrid označuje, že odběr události kontejneru samples-workitems objektů blob je zdrojem události, která aktivuje spouštěč.

Otevřete vygenerovaný EventGridBlobTrigger.ts soubor. Zobrazí se definice funkce, která vypadá nějak takto:

import { app, InvocationContext } from '@azure/functions';

export async function storageBlobTrigger1(blob: Buffer, context: InvocationContext): Promise<void> {
    context.log(
        `Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
    );
}

app.storageBlob('storageBlobTrigger1', {
    path: 'samples-workitems/{name}',
    connection: 'MyStorageAccountAppSetting',
    source: 'EventGrid',
    handler: storageBlobTrigger1,
});

V této definici sourceEventGrid je indikováno, že přihlášení k události kontejneru samples-workitems objektů blob je zdrojem události, která spouští spouštěč.

Upgrade rozšíření úložiště

Pokud chcete použít trigger služby Event Grid Blob Storage, potřebujete verzi 5.x nebo novější rozšíření Azure Functions Storage.

Pokud chcete upgradovat projekt na požadovanou verzi rozšíření, spusťte tento dotnet add package příkaz v okně terminálu:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 
  1. host.json Otevřete soubor projektu a zkontrolujte extensionBundle prvek.

  2. Pokud extensionBundle.version alespoň není 3.3.0, nahraďte extensionBundle prvek touto verzí:

    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
    

Příprava emulace místního úložiště

Visual Studio Code používá Azurite k emulaci služeb Azure Storage při místním spuštění. Pomocí Azurite můžete emulovat službu Azure Blob Storage během místního vývoje a testování.

  1. Pokud jste to ještě neudělali, nainstalujte rozšíření Azurite v3 pro Visual Studio Code.

  2. Ověřte, zda je soubor "UseDevelopmentStorage=true" nastaven pro AzureWebJobsStorage. Toto nastavení říká nástrojům Core Tools, aby při místním spuštění používaly Azurite místo skutečného připojení k účtu úložiště.

  3. Stisknutím klávesy F1 otevřete paletu příkazů, zadejte Azurite: Start Blob Servicea stiskněte enter. Tato akce spustí emulátor služby Azurite Blob Storage.

  4. Na panelu aktivit vyberte ikonu Azure, rozbalte místní , klikněte pravým tlačítkem na > objektů blob, vyberte Vytvořit kontejner objektů blob..., zadejte název >a stiskněte Enter.

    Snímek obrazovky znázorňující výběr možnosti Vytvořit kontejner objektů blob v místní emulaci v editoru Visual Studio Code

  5. Rozbalte >objektů blob a vyberte Nahrát soubory....

    Snímek obrazovky znázorňující výběr možnosti Nahrát soubory v kontejneru samples-workitems v místní emulaci v editoru Visual Studio Code

  6. Zvolte soubor, který chcete nahrát do místně emulovaného kontejneru. Vaše funkce tento soubor později zpracuje za účelem ověření a ladění kódu funkce. Textový soubor může nejlépe fungovat s kódem šablony triggeru objektu blob.

Místní spuštění funkce

Když máte soubor v emulovaném úložišti, můžete funkci spustit a simulovat událost vyvolanou odběrem služby Event Grid. Informace o události předané triggeru závisí na souboru, který jste přidali do místního kontejneru.

  1. Nastavte všechny zarážky a stisknutím klávesy F5 spusťte projekt pro místní ladění. Nástroje Azure Functions Core Tools by měly být spuštěné v okně terminálu.

  2. Zpět v oblasti Azure rozbalte položku , klikněte pravým tlačítkem myši na funkci a vyberte >.

    Snímek obrazovky znázorňující, jak vybrat tlačítko Spustit funkci nyní z funkce v pracovním prostoru místního projektu v editoru Visual Studio Code

  3. V dialogovém okně textu požadavku zadejte samples-workitems/<TEST_FILE_NAME>a nahraďte <TEST_FILE_NAME> názvem souboru, který jste nahráli v emulátoru místního úložiště.

  4. Stisknutím klávesy Enter funkci spusťte. Zadaná hodnota je cesta k objektu blob v místním emulátoru. Tento řetězec se předá triggeru v datové části požadavku, který simuluje datovou část, když odběr události volá vaši funkci, aby nahlásil objekt blob přidaný do kontejneru.

  5. Zkontrolujte výstup spuštění této funkce. Ve výstupu by se měl zobrazit název souboru a jeho obsah zaprotokolovaný. Pokud nastavíte nějaké zarážky, možná budete muset pokračovat v provádění.

Teď, když jste úspěšně ověřili kód funkce místně, je čas projekt publikovat do nové aplikace funkcí v Azure.

Příprava účtu služby Azure Storage

Odběry událostí služby Azure Storage vyžadují účet úložiště pro obecné účely verze 2. K vytvoření tohoto účtu úložiště můžete použít rozšíření Azure Storage pro Visual Studio Code.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů a zadejte Azure Storage: Create Storage Account.... Po zobrazení výzvy zadejte tyto informace:

    Instrukce Akce
    Zadejte název nového účtu úložiště. Zadejte název, který je globálně jedinečný. Názvy účtů úložiště musí mít délku 3 až 24 znaků s malými písmeny a číslicemi. Pro snadnější identifikaci použijte stejný název pro skupinu prostředků a název aplikace funkcí.
    Výběr umístění pro nové prostředky Pokud chcete dosáhnout lepšího výkonu , zvolte oblast blízko vás.

    Rozšíření vytvoří účet úložiště pro obecné účely verze 2 s názvem, který zadáte. Stejný název se používá také pro skupinu prostředků, která obsahuje účet úložiště. Aktivační událost služby Blob Storage založená na Event Gridu vyžaduje účet úložiště pro obecné účely verze 2.

  2. Stiskněte znovu klávesu F1 a v paletě příkazů zadejte Azure Storage: Create Blob Container.... Po zobrazení výzvy zadejte tyto informace:

    Instrukce Akce
    Výběr prostředku Vyberte účet úložiště pro obecné účely verze 2, který jste vytvořili.
    Zadejte název nového kontejneru objektů blob. Zadejte samples-workitems, což je název kontejneru odkazovaný v projektu kódu.

Vaše aplikace funkcí také potřebuje ke spuštění účet úložiště. Pro zjednodušení tento kurz používá stejný účet úložiště pro trigger objektu blob a vaši aplikaci funkcí. V produkčním prostředí ale můžete chtít použít samostatný účet úložiště s vaší aplikací funkcí. Další informace najdete v tématu Důležité informace o úložišti pro službu Azure Functions.

Vytvoření aplikace funkcí

Pomocí těchto kroků vytvořte aplikaci funkcí v plánu Flex Consumption. Při hostování aplikace v plánu Flex Consumption musí triggery služby Blob Storage používat odběry událostí.

  1. Na paletě příkazů zadejte Azure Functions: Vytvoření aplikace funkcí v Azure... (Upřesnit).

  2. Postupujte podle pokynů a zadejte tyto informace:

    Instrukce Výběr
    Zadejte globálně jedinečný název nové aplikace funkcí. Zadejte globálně jedinečný název, který identifikuje novou aplikaci funkcí, a pak vyberte Enter. Platné znaky pro název aplikace funkcí jsou a-z, 0-9 a -.
    Výběr plánu hostování Zvolte Flex Consumption, což je doporučený plán hostování pro bezserverové hostování.
    Výběr umístění pro nové prostředky Vyberte umístění v oblasti blízko vás nebo v blízkosti jiných služeb, ke kterým vaše funkce přistupují.
    Výběr zásobníku modulu runtime Vyberte jazykovou verzi, kterou aktuálně spouštíte lokálně.
    Výběr velikosti instance Vyberte 512. Nastavení velikosti instance můžete kdykoli později změnit na větší velikost.
    Zadejte maximální počet instancí. Vyberte výchozí hodnotu 100, která omezuje celkový horizontální navýšení kapacity aplikace. Můžete také zvolit jinou hodnotu mezi 40 a 1 000.
    Výběr skupiny prostředků Vyberte Vytvořit novou skupinu prostředků a přijměte výchozí nebo zadejte jiný název nové skupiny, která je v předplatném jedinečná.
    Vyberte typ ověřování zdroje Vyberte spravovanou identitu , aby se vaše aplikace připojuje ke vzdáleným prostředkům pomocí ověřování Microsoft Entra ID místo použití sdílených tajných kódů (připojovacích řetězců a klíčů), které jsou méně zabezpečené.
    Vyberte uživatelsky přiřazenou identitu Vyberte Vytvořit novou identitu přiřazenou uživatelem.
    Výběr umístění pro nové prostředky Vyberte stejnou oblast jako účet úložiště, který jste vytvořili. Pokud z nějakého důvodu tato oblast není podporována hrou Flex Consumption, nezobrazí se. V takovém případě zvolte místo toho nejbližší oblast . Další informace najdete v tématu Zobrazení aktuálně podporovaných oblastí.
    Výběr účtu úložiště Zvolte název účtu úložiště, který jste vytvořili.
    Výběr prostředku Application Insights pro vaši aplikaci Zvolte Vytvořit nový prostředek Application Insights a na příkazovém řádku zadejte název instance použité k ukládání dat modulu runtime z vašich funkcí.

    Po vytvoření aplikace funkcí se zobrazí oznámení. Výběrem možnosti Zobrazit výstup v tomto oznámení zobrazíte výsledky vytváření, včetně prostředků Azure, které jste vytvořili.

Nasazení kódu funkce

Důležité

Nasazení do existující aplikace funkcí vždy přepíše obsah této aplikace v Azure.

  1. Na paletě příkazů zadejte a pak vyberte Azure Functions: Nasadit do aplikace funkcí.

  2. Vyberte aplikaci funkcí, kterou jste právě vytvořili. Po zobrazení výzvy k přepsání předchozích nasazení vyberte Nasadit a nasaďte kód funkce do nového prostředku aplikace funkcí.

  3. Po dokončení nasazení vyberte Zobrazit výstup a zobrazte výsledky vytváření a nasazení, včetně prostředků Azure, které jste vytvořili. Pokud oznámení vynecháte, vyberte ikonu zvonku v pravém dolním rohu a znovu ho zobrazíte.

    Snímek obrazovky s oknem Zobrazit výstup

Aktualizace nastavení aplikace

Vzhledem k tomu, že proces publikování automaticky nenahraje požadovaná nastavení aplikace ze local.settings.json souboru, musíte je nahrát do aplikace funkcí, aby funkce běžela správně v Azure.

  1. Na paletě příkazů zadejte Azure Functions: Download Remote Settings... a ve výzvě Vybrat prostředek zvolte název vaší funkční aplikace.

  2. Po zobrazení výzvy, že AzureWebJobsStorage nastavení již existuje, vyberte Ano, pokud chcete přepsat nastavení místního emulátoru skutečným účtem úložiště připojovací řetězec z Azure.

  3. local.settings.json V souboru nahraďte nastavení místního emulátoru stejnými připojovací řetězec, proAzureWebJobsStorage které se používá.

  4. FUNCTIONS_WORKER_RUNTIME Odeberte položku, která není v plánu Flex Consumption podporovaná.

  5. Na paletě příkazů zadejte Azure Functions: Upload Local Settings..., a v dialogu Zvolit prostředek vyberte název vaší funkční aplikace.

Hostitel služby Functions i trigger teď sdílejí stejný účet úložiště.

Sestavení adresy URL koncového bodu

Pokud chcete vytvořit odběr událostí, musíte službě Event Grid poskytnout adresu URL konkrétního koncového bodu pro hlášení událostí služby Blob Storage. Tato adresa URL rozšíření objektu blob se skládá z těchto částí:

Část Příklad
Adresa URL základní aplikace funkcí https://<FUNCTION_APP_NAME>.azurewebsites.net
Cesta specifická pro objekt blob /runtime/webhooks/blobs
Řetězec dotazu funkce ?functionName=Host.Functions.<FUNCTION_NAME>
Přístupový klíč rozšíření objektu blob &code=<BLOB_EXTENSION_KEY>

Zatímco se vaše aplikace připojuje k účtu úložiště pomocí ověřování Microsoft Entra ID, přístupový klíč rozšíření blobu pomáhá chránit webhook tohoto rozšíření před neoprávněným přístupem. Vyhledejte přístupový klíč rozšíření blobu:

  1. V editoru Visual Studio Code vyberte ikonu Azure na panelu aktivit. V části Prostředky rozbalte své předplatné, rozbalte aplikaci Funkcí, klikněte pravým tlačítkem na aplikaci funkcí, kterou jste vytvořili, a vyberte Otevřít na portálu.

  2. V části Funkce v nabídce vlevo vyberte Klíče aplikace.

  3. V části Systémové klíče vyberte klíč s názvem blobs_extension a zkopírujte hodnotu klíče.

    Tuto hodnotu zahrňte do řetězce dotazu nové adresy URL koncového bodu.

  4. Vytvořte novou adresu URL koncového bodu pro trigger služby Blob Storage na základě následujícího příkladu:

    https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.EventGridBlobTrigger&code=<BLOB_EXTENSION_KEY>
    

    V tomto příkladu nahraďte <FUNCTION_APP_NAME> názvem vaší aplikace funkcí a <BLOB_EXTENSION_KEY> hodnotou, kterou jste získali z portálu. Pokud jste pro funkci použili jiný název, nahraďte EventGridBlobTrigger ho názvem této funkce.

Tuto adresu URL koncového bodu teď můžete použít k vytvoření odběru událostí.

Vytvoření odběru událostí

Odběr událostí využívající Azure Event Grid vyvolává události na základě změn v odběru kontejneru objektů blob. Tato událost se pak odešle do koncového bodu rozšíření objektu blob pro vaši funkci. Po vytvoření odběru událostí nemůžete aktualizovat adresu URL koncového bodu.

  1. V editoru Visual Studio Code zvolte ikonu Azure na panelu aktivit. V části Prostředky rozbalte své předplatné, rozbalte účty úložiště, klikněte pravým tlačítkem na účet úložiště, který jste vytvořili dříve, a vyberte Otevřít na portálu.

  2. Přihlaste se k webu Azure Portal a poznamenejte si skupinu prostředků pro svůj účet úložiště. Vytvořte další prostředky ve stejné skupině, abyste usnadnili vyčištění prostředků po dokončení.

  3. V nabídce vlevo vyberte možnost Události.

    Přidání události účtu úložiště

  4. V okně Události vyberte tlačítko + Odběr události a zadejte hodnoty z následující tabulky na kartě Základní:

    Nastavení Navrhovaná hodnota Description
    Jméno myBlobEventSub Název, který identifikuje odběr události. Název použijte k rychlému vyhledání předplatného událostí.
    Schéma událostí Schéma Event Gridu Pro události použijte výchozí schéma.
    Název systémového tématu samples-workitems-blobs Název tématu, který představuje kontejner. Téma se vytvoří s prvním předplatným a použijete ho pro budoucí odběry událostí.
    Filtrování podle typů událostí Vytvoření objektu blob
    Typ koncového bodu Web Hook Trigger úložiště objektů blob používá koncový bod webhooku.
    Endpoint Koncový bod adresy URL na základě Azure Použijte vytvořený koncový bod adresy URL, který zahrnuje hodnotu klíče.
  5. Výběrem možnosti Potvrdit výběr ověřte adresu URL koncového bodu.

  6. Vyberte kartu Filtry a do výzev zadejte následující informace:

    Nastavení Navrhovaná hodnota Description
    Povolení filtrování předmětu Povoleno Umožňuje filtrovat, pro které objekty blob můžou funkci aktivovat.
    Předmět začíná na /blobServices/default/containers/<CONTAINER_NAME>/blobs/<BLOB_PREFIX> Nahraďte <CONTAINER_NAME hodnoty, <BLOB_PREFIX> které zvolíte. Toto nastavení aktivuje předplatné jenom pro objekty blob, které začínají BLOB_PREFIX a jsou v kontejneru CONTAINER_NAME .
    Předmět končí na .Txt Zajišťuje, aby funkce byla aktivována pouze objekty blob končící na .txt.

    Další informace o filtrování podle konkrétních objektů blob najdete v tématu Filtrování událostí pro službu Azure Event Hubs.

  7. Výběrem možnosti Vytvořit vytvořte odběr události.

Nahrání souboru do kontejneru

Soubor z počítače můžete nahrát do kontejneru úložiště objektů blob pomocí editoru Visual Studio Code.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů a zadejte Azure Storage: Upload Files....

  2. V dialogovém okně Otevřít zvolte soubor, nejlépe textový soubor, a vyberte Nahrát .

  3. Podle pokynů na obrazovce zadejte tyto informace:

    Nastavení Navrhovaná hodnota Description
    Zadejte cílový adresář tohoto nahrání. výchozí Přijměte výchozí hodnotu /, což je kořen kontejneru.
    Výběr prostředku Název účtu úložiště Zvolte název účtu úložiště, který jste vytvořili v předchozím kroku.
    Výběr typu prostředku Kontejnery objektů blob Nahráváte do kontejneru objektů blob.
    Výběr kontejneru objektů blob samples-workitems Tato hodnota je název kontejneru, který jste vytvořili v předchozím kroku.

V místním systému souborů vyhledejte soubor, který chcete nahrát, a pak soubor nahrajte výběrem tlačítka Nahrát.

Ověření funkce v Azure

Když nahrajete soubor do kontejneru samples-workitems , funkce se aktivuje. Funkci můžete ověřit kontrolou následujících položek na webu Azure Portal:

  1. V účtu úložiště přejděte na stránku Události , vyberte Odběry událostí a měli byste vidět, že byla událost doručena. Aby se událost zobrazila v grafu, může to být až pět minut zpoždění.

  2. Zpátky na stránce vaší aplikace funkcí na portálu v části Funkce najdou vaši funkci a vyberou vyvolání a další. Měli byste vidět trasování napsaná z úspěšného spuštění funkce.

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

Až budete pokračovat k dalšímu kroku a přidáte vazbu fronty Azure Storage do funkce, budete muset zachovat všechny prostředky, abyste mohli stavět na tom, co jste už udělali.

Jinak můžete pomocí následujícího postupu odstranit aplikaci funkcí a související prostředky, abyste se vyhnuli dalším nákladům.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Na paletě příkazů vyhledejte a vyberte Azure: Open in portal.

  2. Zvolte aplikaci funkcí a stiskněte Enter. Otevře se stránka aplikace funkcí na webu Azure Portal.

  3. Na kartě Přehled vyberte pojmenovaný odkaz vedle skupiny prostředků.

    Snímek obrazovky s výběrem skupiny prostředků, která se má odstranit ze stránky aplikace funkcí

  4. Na stránce Skupina prostředků zkontrolujte seznam zahrnutých prostředků a ověřte, že se jedná o prostředky, které chcete odstranit.

  5. Vyberte Odstranit skupinu prostředků a postupujte podle pokynů.

    Odstranění může trvat několik minut. Po jeho dokončení se na několik sekund zobrazí oznámení. K zobrazení tohoto oznámení můžete také vybrat ikonu zvonku v horní části stránky.

Další informace o nákladech na službu Functions najdete v tématu Odhad nákladů na plán Consumption.

Další kroky