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žívá 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 aktuálně 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.

    1. 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 8vyberte Java 11 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

Nejprve 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 a zobrazí se definice EventGridBlobTrigger funkce 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 source = "EventGrid" označuje, že odběr události kontejneru samples-workitems objektů blob se používá jako zdroj události, která spouští trigger.

(Volitelné) Kontrola kódu

Otevřete vygenerovaný EventGridBlobTrigger.cs soubor a 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}");
}

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

Otevřete vygenerovaný EventGridBlobTrigger.java soubor a 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 se používá jako zdroj události, která spouští trigger.

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

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

Označuje path , že samples-workitems kontejner objektů blob se používá jako zdroj události, která spouští trigger.

Otevřete vygenerovaný EventGridBlobTrigger.js soubor a 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 source EventGrid označuje, že odběr samples-workitems události kontejneru objektů blob se používá jako zdroj události, která spouští trigger.

Otevřete vygenerovaný EventGridBlobTrigger.ts soubor a 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 source EventGrid označuje, že odběr samples-workitems události kontejneru objektů blob se používá jako zdroj události, která spouští trigger.

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

Pokud chcete použít trigger služby Event Grid Blob Storage, musíte mít aspoň verzi 5.x rozšíření Azure Functions Storage.

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

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 
  1. Otevřete soubor projektu host.json 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í. Azurite slouží k emulaci služby 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, že je u souboru "UseDevelopmentStorage=true" local.settings.json nastavená AzureWebJobsStoragehodnota , která nástroji Core Tools říká, 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, čímž spustíte emulátor služby Azurite Blob Storage.

  4. Na panelu aktivit vyberte ikonu Azure, rozbalte místní emulátor účtů>úložiště připojených k pracovnímu prostoru>, klikněte pravým tlačítkem na kontejnery objektů blob, vyberte Vytvořit kontejner objektů blob..., zadejte název samples-workitemsa 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 ukázky kontejnerů>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. Tento soubor se později zpracuje vaší funkcí, aby ověřil a ladil kód 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 Funkce místního projektu>pracovního prostoru>, klikněte pravým tlačítkem myši na funkci a vyberte Spustit funkci nyní....

    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 znovu 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žíváme 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ý jste zadali. 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. Když je vaše aplikace hostovaná v plánu Flex Consumption, triggery blob Storage musí používat odběry událostí.

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

  2. Po zobrazení výzev 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 -.
    Vyberte plán hostování. Zvolte Flex Consumption.
    Vyberte zásobník modulu runtime. Zvolte sadu jazyků a verzi, na které jste místně spustili.
    Vyberte skupinu prostředků pro nové prostředky. Zvolte existující skupinu prostředků, ve které jste vytvořili účet úložiště.
    Vyberte umístění pro nové prostředky. Vyberte umístění v podporované oblasti blízko vás nebo v blízkosti jiných služeb, ke kterým vaše funkce přistupují. Nepodporované oblasti se nezobrazují. Další informace najdete v tématu Zobrazení aktuálně podporovaných oblastí.
    Vyberte účet úložiště. Zvolte název účtu úložiště, který jste vytvořili.
    Vyberte prostředek 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 požadovaná nastavení aplikace ze local.settings.json souboru nejsou automaticky publikovaná, musíte je nahrát do aplikace funkcí, aby vaše funkce běžela správně v Azure.

  1. Do příkazové palety zadejte Azure Functions: Download Remote Settings...a do příkazového řádku Vyberte prostředek zvolte název vaší aplikace funkcí.

  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. Do příkazové palety zadejte Azure Functions: Upload Local Settings...a do příkazového řádku Vyberte prostředek zvolte název vaší aplikace funkcí.

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>

Přístupový klíč rozšíření objektu blob je navržený tak, aby ostatním ztížil přístup ke koncovému bodu rozšíření objektu blob. Určení přístupového klíče rozšíření objektu blob:

  1. V editoru Visual Studio Code zvolte 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 zahrnete 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ě. Ostatní prostředky vytvoříte 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 můžete použít k rychlému vyhledání odběru 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 Popis
    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. Tím se nastaví předplatné tak, aby se aktivovalo 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.

  1. 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 Popis
    Zadejte cílový adresář tohoto nahrání. default Stačí přijmout 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.

Vyhledejte soubor, který chcete nahrát, a pak výběrem tlačítka Nahrát soubor nahrajte.

Ověření funkce v Azure

Když jste teď nahráli soubor do kontejneru samples-workitems , měla by se funkce aktivovat. Ověření můžete ověřit tak, že na webu Azure Portal zkontrolujete následující:

  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. Událost se může zobrazit v grafu až pět minut.

  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