Sdílet prostřednictvím


Vývoj Azure Functions pomocí Visual Studio Code

Rozšíření Azure Functions pro Visual Studio Code umožňuje vyvíjet funkce místně a nasazovat je do Azure. Pokud je tato zkušenost vaším prvním setkáním s Azure Functions, můžete se dozvědět více na Úvod do Azure Functions.

Rozšíření Azure Functions nabízí tyto výhody:

  • Upravte, sestavte a spusťte funkce na místním vývojovém počítači.
  • Publikujte projekt Azure Functions přímo do Azure.
  • Funkce můžete psát v různých jazycích a využívat výhody Visual Studio Code.

Prohlížíte si verzi jazyka C# tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Prohlížíte si Java verzi tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Prohlížíte si javascriptovou verzi tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Prohlížíte si verzi PowerShellu tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Prohlížíte si Python verzi tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Prohlížíte si verzi TypeScriptu tohoto článku. Na začátku článku nezapomeňte vybrat upřednostňovaný programovací jazyk Functions.

Pokud s funkcí teprve začínáte, možná budete chtít nejdřív dokončit článek Visual Studio Code rychlý start.

Důležité

Nekombinujte místní vývoj a vývoj portálu pro jednu aplikaci funkcí. Když publikujete z místního projektu do aplikace funkcí, proces nasazení přepíše všechny funkce, které jste vytvořili na portálu.

Požadavky

K místnímu spuštění a ladění funkcí potřebujete také tyto požadavky. Není nutné jen vytvářet nebo nasazovat projekty v Azure Functions.

  • Nástroje Azure Functions Core Tools, které umožňují integrované místní ladění. Pokud máte nainstalované rozšíření Azure Functions, nejjednodušší způsob instalace nebo aktualizace nástrojů Core Tools je spuštěním příkazu Azure Functions: Install or Update Azure Functions Core Tools z palety příkazů.
  • Rozšíření C# pro Visual Studio Code.

  • .NET (CLI), který je součástí sady .NET SDK.

Vytvoření projektu Azure Functions

Rozšíření Functions umožňuje vytvořit požadovaný projekt aplikace funkcí ve stejnou dobu, kdy vytvoříte svou první funkci. Pomocí těchto kroků vytvořte funkci aktivovanou protokolem HTTP v novém projektu. HTTP trigger je nejjednodušší šablona triggeru funkce, která demonstruje.

  1. V Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Vyhledejte a spusťte příkaz Azure Functions: Create New Project.... Vyberte umístění adresáře pro pracovní prostor projektu a pak zvolte Vybrat.

    Můžete buď vytvořit novou složku, nebo zvolit prázdnou složku pro pracovní prostor projektu, ale nevybírejte složku projektu, která už je součástí pracovního prostoru.

    Místo toho můžete spustit příkaz Azure Functions: Create New Containerized Project... a získat také soubor Dockerfile vygenerovaný pro projekt.

  2. Po zobrazení výzvy vyberte jazyk projektu. V případě potřeby zvolte konkrétní jazykovou verzi.

  3. Vyberte šablonu funkce triggeru HTTP nebo vyberte Přeskočit a vytvořte projekt bez funkce. Funkci můžete do projektu přidat kdykoli později.

    Návod

    Pokud chcete zobrazit další šablony, vyberte možnost Změnit filtr šablony a nastavte hodnotu na Jádro nebo Vše.

  4. Jako název funkce zadejte HttpExample, vyberte Enter a pak vyberte Autorizaci funkce .

    Tato úroveň autorizace vyžaduje, abyste při volání koncového bodu funkce zadali klíč funkce.

  5. V rozevíracím seznamu vyberte Přidat do pracovního prostoru.

  6. V okně Důvěřovat autorům souborů v této složce? vyberte Ano.

Visual Studio Code vytvoří funkci ve zvoleném jazyce a v šabloně pro funkci aktivovanou protokolem HTTP.

Vygenerované soubory projektu

Šablona projektu vytvoří projekt ve zvoleném jazyce a nainstaluje požadované závislosti. Pro libovolný jazyk má nový projekt tyto soubory:

  • host.json: Umožňuje nakonfigurovat hostitele služby Functions. Tato nastavení platí, když spouštíte funkce místně a když je spouštíte v Azure. Další informace najdete v host.json referenčních informacích.

  • local.settings.json: Udržuje nastavení použitá při místním spouštění funkcí. Tato nastavení se používají jenom v místně spuštěných funkcích. Další informace naleznete v tématu Místní soubor nastavení.

    Důležité

    Protože soubor local.settings.json může obsahovat tajné kódy, nezapomeňte soubor vyloučit ze správy zdrojového kódu projektu.

  • Dockerfile (volitelné): Umožňuje vytvořit kontejnerizovanou aplikaci funkcí z projektu pomocí schválené základní image pro váš projekt. Tento soubor získáte pouze při spuštění příkazu Azure Functions: Create New Containerized Project.... Do existujícího projektu můžete přidat soubor Dockerfile pomocí func init --docker-only příkazu v nástrojích Core Tools.

Soubor knihovny tříd HttpExample.cs, jehož obsah se liší v závislosti na tom, jestli se váš projekt spouští v izolovaném pracovním procesu nebo v procesu s hostitelem functions.

Vytvoří se tyto soubory:

  • Soubor pom.xml v kořenové složce, který definuje parametry projektu a nasazení, včetně závislostí projektu a verze Java. pom.xml obsahuje také informace o prostředcích Azure vytvořených během nasazení.

  • Soubor Functions.java v cestě src, která implementuje funkci.

Vygenerované soubory závisí na zvoleném programovacím modelu Node.js pro funkce:

  • Soubor package.json v kořenové složce.

  • Pojmenovaný soubor .js ve složce src\functions , který obsahuje definici funkce i kód funkce.

Vytvoří se složka HttpExample, která obsahuje:

Vygenerované soubory závisí na zvoleném programovacím modelu Python pro funkce:

  • Soubor requirements.txt na úrovni projektu, který obsahuje seznamy balíčků vyžadovaných funkcemi.

  • Soubor function_app.py, který obsahuje definici funkce i kód.

V tuto chvíli můžete funkci triggeru HTTP spustit místně.

Přidání funkce do projektu

Novou funkci můžete do existujícího projektu přidat pomocí jedné z předdefinovaných šablon triggerů functions. Pokud chcete přidat novou aktivační událost funkce, otevřete paletu příkazů výběrem klávesy F1 a pak vyhledejte a spusťte příkaz Azure Functions: Create Function. Podle pokynů zvolte typ triggeru a definujte požadované atributy triggeru. Pokud trigger vyžaduje přístupový klíč nebo connection string pro připojení ke službě, připravte tuto položku před vytvořením triggeru funkce.

Tato akce přidá do projektu nový soubor knihovny tříd C# (.cs).

Tato akce přidá do projektu nový soubor Java (.java).

Výsledky této akce závisí na verzi modelu Node.js.

  • Soubor package.json v kořenové složce.

  • Pojmenovaný soubor .js ve složce src\functions , který obsahuje definici funkce i kód funkce.

Tato akce vytvoří v projektu novou složku. Složka obsahuje nový soubor function.json a nový soubor kódu PowerShellu.

Výsledky této akce závisí na verzi modelu Python.

Visual Studio Code přidá nový kód funkce do souboru function_app.py (výchozí chování) nebo do jiného souboru Python, který jste vybrali.

Připojení ke službám

Funkci můžete připojit k dalším službám Azure přidáním vstupních a výstupních vazeb. Vazby propojují vaši funkci s jinými službami, aniž byste museli psát kód připojení.

Způsob, jakým například definujete výstupní vazbu, která zapisuje data do fronty úložiště, závisí na vašem procesním modelu:

  1. V případě potřeby přidejte odkaz na balíček, který podporuje vaše rozšíření vazby.

  2. Aktualizujte metodu funkce tak, aby přidala atribut, který definuje parametr vazby, například QueueOutput pro výstupní vazbu fronty. Objekt můžete použít MultiResponse k vrácení více zpráv nebo více výstupních datových proudů.

Pokud například chcete přidat výstupní vazbu, která zapisuje data do fronty úložiště, aktualizujte metodu funkce a přidejte parametr vazby definovaný pomocí anotace QueueOutput. Objekt OutputBinding<T> představuje zprávy, které jsou zapsány do výstupní vazby po dokončení funkce.

Způsob, jakým například definujete výstupní vazbu, která zapisuje data do fronty úložiště, závisí na vaší verzi modelu Node.js:

Pomocí modelu Node.js v4 musíte ručně přidat return: možnost do definice funkce pomocí storageQueue funkce na objektu output . Tato funkce definuje frontu úložiště, na kterou se zapisuje výstup return. Výstup se zapíše po dokončení funkce.

Visual Studio Code umožňuje přidávat vazby do souboru function.json pomocí praktické sady výzev.

Pokud chcete přidat vazbu, otevřete paletu příkazů (F1) a zadejte Azure Functions: add binding... zvolte funkci pro novou vazbu a postupujte podle pokynů, které se liší v závislosti na typu přidané vazby do funkce.

Následuje příklad výzvy k definování nové výstupní vazby úložiště:

Výzva Hodnota Popis
Výběr směru vazby out Vazba je výstupní svázání.
Vyberte směr vazby Azure Queue Storage Vazbou je Azure Storage fronty.
Název použitý k identifikaci této vazby v kódu msg Název, který identifikuje parametr vazby odkazovaný v kódu.
Fronta, do které se zpráva odešle outqueue Název fronty, do které vazba zapisuje. Pokud queueName neexistuje, binding ji vytvoří při prvním použití.
Výběr nastavení z local.settings.json MyStorageConnection Název nastavení aplikace, které obsahuje connection string pro účet úložiště. Nastavení AzureWebJobsStorage obsahuje připojovací řetězec pro účet úložiště, který jste vytvořili ve funkční aplikaci.

Můžete také kliknout pravým tlačítkem (Ctrl+kliknout na macOS) přímo na function.json souboru ve složce funkcí, vybrat Přidat vazbu a postupovat podle stejných výzev.

V tomto příkladu se do pole bindings v souboru function.json přidá následující vazba:

{
    "type": "queue",
    "direction": "out",
    "name": "msg",
    "queueName": "outqueue",
    "connection": "MyStorageConnection"
}

Způsob, jakým například definujete výstupní vazbu, která zapisuje data do fronty úložiště, závisí na vaší verzi modelu Python:

Pomocí dekorátoru @queue_output definujte na funkci pojmenovaný parametr vazby pro výstup do fronty úložiště. Parametr func.Out definuje, jaký výstup se zapíše.

Následující příklad ukazuje definici funkce po přidání výstupní vazby Queue Storage do funkce aktivované protokolem HTTP:

Protože funkce aktivovaná protokolem HTTP také vrací odpověď HTTP, funkce vrátí MultiResponse objekt, který představuje výstup HTTP i fronty.

[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{

Tento příklad je definice objektu MultiResponse , který obsahuje výstupní vazbu:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

V tomto příkladu se používá integrace ASP.NET Core. Pokud nepoužíváte integraci ASP.NET Core, musíte změnit HttpRequest na HttpRequestData a IActionResult na HttpResponseData.

Zprávy se posílají do fronty po dokončení funkce. Způsob, jakým definujete výstupní vazbu, závisí na modelu procesu. Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

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

const sendToQueue = output.storageQueue({
  queueName: 'outqueue',
  connection: 'AzureWebJobsStorage',
});

app.http('HttpExample', {
  methods: ['GET', 'POST'],
  authLevel: 'anonymous',
  extraOutputs: [sendToQueue],
  handler: async (request, context) => {
    try {
      context.log(`Http function processed request for url "${request.url}"`);

      const name = request.query.get('name') || (await request.text());
      context.log(`Name: ${name}`);

      if (name) {
        const msg = `Name passed to the function ${name}`;
        context.extraOutputs.set(sendToQueue, [msg]);
        return { body: msg };
      } else {
        context.log('Missing required data');
        return { status: 404, body: 'Missing required data' };
      }
    } catch (error) {
      context.log(`Error: ${error}`);
      return { status: 500, body: 'Internal Server Error' };
    }
  },
});

Způsob, jakým definujete výstupní vazbu, závisí na verzi modelu Node.js. Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

Způsob, jakým definujete výstupní vazbu, závisí na verzi modelu Python. Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

import {
  app,
  output,
  HttpRequest,
  HttpResponseInit,
  InvocationContext,
  StorageQueueOutput,
} from '@azure/functions';

const sendToQueue: StorageQueueOutput = output.storageQueue({
  queueName: 'outqueue',
  connection: 'AzureWebJobsStorage',
});

export async function HttpExample(
  request: HttpRequest,
  context: InvocationContext,
): Promise<HttpResponseInit> {
  try {
    context.log(`Http function processed request for url "${request.url}"`);

    const name = request.query.get('name') || (await request.text());
    context.log(`Name: ${name}`);

    if (name) {
      const msg = `Name passed to the function ${name}`;
      context.extraOutputs.set(sendToQueue, [msg]);
      return { body: msg };
    } else {
      context.log('Missing required data');
      return { status: 404, body: 'Missing required data' };
    }
  } catch (error) {
    context.log(`Error: ${error}`);
    return { status: 500, body: 'Internal Server Error' };
  }
}

app.http('HttpExample', {
  methods: ['GET', 'POST'],
  authLevel: 'anonymous',
  handler: HttpExample,
});

Způsob, jakým definujete výstupní vazbu, závisí na verzi modelu Node.js. Další informace, včetně odkazů na ukázkový kód vazby, na který můžete odkazovat, najdete v tématu Přidání vazeb do funkce.

Přihlášení k Azure

Než budete moct vytvářet Azure prostředky nebo publikovat aplikaci, musíte se přihlásit k Azure.

  1. Pokud ještě nejste přihlášení, na panelu Aktivita vyberte ikonu Azure. Potom v části Zdroje vyberte Sign in to Azure.

    Screenshot okna pro přihlášení do Azure v programu Visual Studio Code.

    Pokud už jste přihlášení a uvidíte stávající předplatná, přejděte k další části. Pokud ještě účet Azure nemáte, vyberte Vytvoření účtu Azure. Studenti mohou vybrat Vytvořit účet Azure pro studenty.

  2. Po zobrazení výzvy v prohlížeči vyberte svůj Azure účet a přihlaste se pomocí přihlašovacích údajů k účtu Azure. Pokud vytvoříte nový účet, můžete se přihlásit po vytvoření účtu.

  3. Po úspěšném přihlášení můžete zavřít nové okno prohlížeče. Předplatná, která patří vašemu Azure účtu, se zobrazí na bočním panelu.

Vytvoření Azure prostředků

Než budete moct publikovat projekt Functions do Azure, musíte mít aplikaci funkcí a související prostředky ve svém Azure předplatném ke spuštění kódu. Aplikace funkcí poskytuje kontext spuštění pro vaše funkce. Když publikujete z Visual Studio Code do aplikace funkcí v Azure, projekt se zabalí a nasadí do vybrané aplikace funkcí ve vašem Azure předplatném.

Při vytváření aplikace funkcí v Azure můžete zvolit buď rychlou cestu k vytvoření aplikace funkcí pomocí výchozích hodnot, nebo cestu, která poskytuje pokročilé možnosti, jako je použití existujících Azure prostředků. Tímto způsobem máte větší kontrolu při vytváření vzdálených prostředků.

V této části vytvoříte funkční aplikaci v plánu Flex Consumption společně se souvisejícími prostředky v rámci vašeho předplatného Azure. Mnoho rozhodnutí o vytváření prostředků se pro vás provádí na základě výchozího chování. Pokud chcete mít větší kontrolu nad vytvořenými prostředky, musíte místo toho vytvořit aplikaci funkcí s pokročilými možnostmi.

  1. V Visual Studio Code výběrem klávesy F1 otevřete paletu příkazů. Na příkazovém řádku (>) zadejte a pak vyberte Azure Functions: Vytvořit aplikaci funkcí v Azure.

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

    Výzva Akce
    Výběr předplatného Vyberte Azure předplatné, které chcete použít. Výzva se nezobrazí, pokud v části Prostředky uvidíte jenom jedno předplatné.
    Zadejte nový název aplikace funkcí. Zadejte globálně jedinečný název platný v cestě URL. Zadaný název se ověří, abyste měli jistotu, že je v Azure Functions jedinečný.
    Výběr umístění pro nové prostředky Vyberte Azure oblast. Pokud chcete dosáhnout lepšího výkonu , vyberte oblast blízko vás. Zobrazí se pouze oblasti podporované plány Flex Consumption.
    Výběr zásobníku modulu runtime Vyberte jazykovou verzi, kterou aktuálně spouštíte lokálně.
    Vyberte typ ověřování zdroje Vyberte Spravovanou identitu, což je nejbezpečnější možnost připojení k výchozímu účtu úložiště hostitele.

    Na panelu Azure: Protokol aktivit se v rozšíření Azure zobrazuje stav jednotlivých prostředků při jejich vytváření v Azure.

    Screenshot, která zobrazuje záznam vytvoření prostředku Azure.

  3. Po vytvoření funkční aplikace se ve vašem předplatném Azure vytvoří následující související prostředky. Prostředky se pojmenují na základě názvu, který jste zadali pro vaši aplikaci funkcí.

    • Skupina prostředků, což je logický kontejner pro související prostředky.
    • Aplikace funkcí, která poskytuje prostředí pro spouštění kódu funkce. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků ve stejném plánu hostování.
    • Plán Azure App Service, který definuje základního hostitele vaší aplikace funkcí.
    • Standardní účet Azure Storage, který používá hostitel služby Functions k udržování stavu a dalších informací o vaší aplikaci funkcí.
    • Instance Application Insights, která je připojená k funkční aplikaci a sleduje použití vašich funkcí v této aplikaci.
    • Spravovaná identita přiřazená uživatelem přidaná do role Přispěvatel dat objektů blob služby Storage v novém výchozím účtu úložiště hostitele.

    Po vytvoření aplikace funkcí a použití balíčku nasazení se zobrazí oznámení.

    Návod

    Ve výchozím nastavení se Azure prostředky vyžadované vaší aplikační funkcí vytvoří na základě názvu, který zadáte pro vaši aplikační funkci. Ve výchozím nastavení se prostředky vytvářejí pomocí aplikace funkcí ve stejné nové skupině prostředků. Pokud chcete přizpůsobit názvy přidružených zdrojů nebo znovu použít existující zdroje, publikujte projekt s rozšířenými možnostmi vytvoření.

Vytvořte nasazení Azure Container Apps

Důležité

Nyní je k dispozici nová metoda hostování pro spuštění Azure Functions přímo v Azure Container Apps. Podívejte se na podporu nativních funkcí Azure v aplikacích Azure Container. Tato integrace umožňuje používat všechny funkce a možnosti Azure Container Apps. Můžete také využít programovací model funkcí a jednoduchost automatického škálování poskytovaného Azure Functions.

Tento přístup doporučujeme pro většinu nových úloh. Další informace najdete v tématu Azure Functions na Azure Container Apps.

Pomocí Visual Studio Code můžete vytvořit Azure prostředky pro kontejnerizovaný projekt kódu. Když rozšíření zjistí přítomnost souboru Dockerfile během vytváření prostředků, zeptá se, jestli chcete místo kódu nasadit image kontejneru. Visual Studio Code vytvoří Azure Container Apps prostředí pro projekt kontejnerizovaného kódu, který je integrovaný s Azure Functions. Další informace najdete v hostování Azure Functions pomocí Azure Container Apps.

Poznámka:

Nasazení kontejneru vyžaduje rozšíření Azure Container Apps pro Visual Studio Code. Toto rozšíření je aktuálně ve verzi Preview.

Proces vytvoření závisí na tom, jestli zvolíte rychlé vytvoření, nebo potřebujete použít pokročilé možnosti:

  1. V Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Vyhledejte a spusťte příkaz Azure Functions: Create Function App in Azure....

  2. Po zobrazení výzvy zvolte image kontejneru.

  3. Podle pokynů na obrazovce zadejte tyto informace:

    Výzva Výběr
    Výběr předplatného (volitelné) Vyberte předplatné, které chcete použít. Tato výzva se nezobrazí, pokud v části Prostředky uvidíte jenom jedno předplatné.
    Zadejte název nové aplikace funkcí. Zadejte název, který je platný v cestě URL. Zadaný název se ověří, aby se zajistilo, že je globálně jedinečný ve službě Functions.
    Vyberte typ ověřování zdroje Vyberte Spravovaná identita, aby se vaše aplikace připojovala ke vzdáleným prostředkům pomocí ověřování Microsoft Entra ID místo používání sdílených tajných kódů (připojovacích řetězců a klíčů), které jsou méně zabezpečené.
    Výběr umístění pro nové prostředky Pokud chcete dosáhnout lepšího výkonu , zvolte oblast blízko vás.
  4. Po zobrazení výzvy zadejte název prostředí aplikace kontejneru.

    Rozšíření zobrazuje stav jednotlivých prostředků při jejich vytváření v Azure na panelu Azure: Protokol aktivit.

Další informace o prostředcích potřebných ke spuštění kontejnerizovaných funkcí v Container Apps najdete v tématu Požadované prostředky.

Poznámka:

V současné době nemůžete použít Visual Studio Code k nasazení kontejnerizované aplikace funkcí do Azure Functions integrovaného prostředí Container Apps. Místo toho musíte image kontejneru publikovat do registru kontejneru a pak tuto image registru nastavit jako zdroj nasazení pro vaši aplikaci funkcí hostované službou Container Apps. Další informace najdete v tématu Vytvoření aplikace funkcí v kontejneru a aktualizace image v registru.

Nasazení souborů projektu

Nastavte kontinuální nasazení tak, aby se vaše funkční aplikace v Azure aktualizovala při aktualizaci zdrojových souborů v připojeném zdrojovém umístění. Soubory projektu můžete nasadit také z Visual Studio Code. Při publikování z Visual Studio Code můžete využít technologii nasazení Zip.

Důležité

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

  1. Na paletě příkazů zadejte a pak vyberte Azure Functions: Deploy to Function App.

  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 View Output 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 okna Zobrazit výstup

Získání adresy URL funkce aktivované protokolem HTTP v Azure

Pokud chcete volat funkci aktivovanou protokolem HTTP z klienta, potřebujete adresu URL funkce, která je k dispozici po nasazení do vaší aplikace funkcí. Tato adresa URL obsahuje všechny požadované funkční klíče. Toto rozšíření můžete použít k získání těchto adres URL nasazených funkcí. Pokud chcete jenom spustit vzdálenou funkci v Azure, použijte funkci "Spustit nyní" rozšíření.

  1. Výběrem klávesy F1 otevřete paletu příkazů a pak vyhledejte a spusťte příkaz Azure Functions: Copy Function URL.

  2. Podle pokynů vyberte aplikaci funkcí v Azure a pak konkrétní trigger HTTP, který chcete vyvolat.

Adresa URL funkce se zkopíruje do schránky spolu se všemi požadovanými klíči předanými parametrem code dotazu. Pomocí nástroje HTTP odešlete požadavky POST nebo použijte prohlížeč k odeslání požadavků GET do vzdálené funkce.

Když rozšíření získá adresu URL funkce v Azure, použije váš účet Azure k automatickému načtení klíčů potřebných ke spuštění funkce. Přečtěte si další informace o přístupových klíčích funkcí. Spouštění funkcí, které nejsou aktivované protokolem HTTP, vyžaduje použití klíče správce.

Spouštění funkcí

Rozšíření Azure Functions umožňuje spouštět jednotlivé funkce. Funkce můžete spouštět buď v projektu na místním vývojovém počítači, nebo v Azure předplatném.

Pro funkce triggeru HTTP volá rozšíření koncový bod HTTP. U jiných typů triggerů rozšíření volá rozhraní API správce, aby funkci spustila. Text zprávy odeslané do funkce závisí na typu triggeru. Když trigger vyžaduje testovací data, zobrazí se výzva k zadání dat v určitém formátu JSON.

Spouštění funkcí v Azure

Pokud chcete spustit funkci v Azure z Visual Studio Code, postupujte takto:

  1. Na paletě příkazů zadejte Azure Functions: Spustit funkci nyní a vyberte své Azure předplatné.

  2. V seznamu vyberte aplikaci funkcí v Azure. Pokud aplikaci funkcí nevidíte, ujistěte se, že jste přihlášeni ke správnému předplatnému.

  3. V seznamu zvolte funkci, kterou chcete spustit. Do pole Zadejte text požadavku zadejte text zprávy požadavku a stisknutím klávesy Enter odešlete tuto zprávu požadavku do funkce.

    Výchozí text v textu požadavku Enter označuje formát textu. Pokud vaše funkční aplikace nemá žádné funkce, zobrazí se výstraha s touto chybou.

    Když se funkce spustí v Azure a vrátí odpověď, Visual Studio Code zobrazí oznámení.

Funkci můžete spustit také z oblasti Azure: Functions tak, že otevřete místní nabídku funkce, kterou chcete spustit z aplikace funkcí ve svém Azure předplatném, a pak vyberete Execute Function Now... .

Když spustíte funkce v Azure z Visual Studio Code, rozšíření použije váš účet Azure k automatickému načtení klíčů potřebných ke spuštění funkce. Přečtěte si další informace o přístupových klíčích funkcí. Spouštění funkcí, které nejsou aktivované protokolem HTTP, vyžaduje použití klíče správce.

Místní spouštění funkcí

Místní prostředí runtime je stejné prostředí, které hostuje vaši funkční aplikaci v Azure. Modul runtime načte místní nastavení ze souborulocal.settings.json. Pokud chcete projekt Functions spustit místně, musíte splnit další požadavky.

Konfigurace místního spuštění projektu

Modul runtime služby Functions interně používá účet Azure Storage pro všechny typy triggerů s výjimkou http a webhooků. Nastavte klíč Values.AzureWebJobsStorage na platný připojovací řetězec účtu Azure Storage.

Tato část používá rozšíření Azure Storage pro Visual Studio Code a Azure Storage Explorer k připojení a načtení připojovacího řetězce úložiště.

Pro nastavení řetězce připojení účtu úložiště:

  1. V Visual Studio otevřete Cloud Explorer, rozbalte >Položka úložiště a vyberte Properties a zkopírujte hodnotu Primární připojovací řetězec.

  2. V projektu otevřete soubor local.settings.json a nastavte hodnotu klíče AzureWebJobsStorage na connection string, který jste zkopírovali.

  3. Opakováním předchozího kroku přidejte jedinečné klíče do pole Hodnoty pro všechna další připojení vyžadovaná vašimi funkcemi.

Další informace naleznete v tématu Místní soubor nastavení.

Místní ladění funkcí

Pokud chcete ladit funkce, vyberte F5. Pokud nástroje Core Tools nejsou dostupné, zobrazí se výzva k jeho instalaci. Po instalaci a spuštění nástrojů Core Tools se výstup zobrazí v terminálu. Tento krok je stejný jako spuštění func start příkazu Core Tools z terminálu, ale s dalšími úlohami sestavení a připojeným ladicím programem.

Při spuštění projektu můžete použít funkci rozšíření Spustit funkci nyní... pro aktivaci vašich funkcí stejně, jako kdyby byl projekt nasazen do Azure. V případě, že projekt běží v režimu ladění, se zarážky zobrazují ve Visual Studio Code, jak byste očekávali.

  1. Na paletě příkazů zadejte Azure Functions: Spustit funkci nyní a zvolte Local project.

  2. Vyberte funkci, kterou chcete ve svém projektu spustit, a zadejte text zprávy do Enter request body. Stisknutím klávesy Enter odešlete tuto zprávu požadavku do funkce. Výchozí text v Enter request body by měl naznačovat formát těla. Pokud vaše funkční aplikace nemá žádné funkce, zobrazí se výstraha s touto chybou.

  3. Když se funkce spustí místně a po přijetí odpovědi, oznámení se vyvolá ve Visual Studio Code. Informace o spuštění funkce se zobrazují na panelu terminálu .

Klíče se při místním spuštění nevyžadují. Toto pravidlo platí pro klíče funkcí i klíče na úrovni správce.

Práce s místním nastavením aplikace

Když se vaše aplikace funkcí spustí v Azure, nastavení potřebná pro vaše funkce jsou uložena šifrovaně v nastavení aplikace. Během místního vývoje se tato nastavení místo toho přidají do Values kolekce v souborulocal.settings.json . Soubor local.settings.json také ukládá nastavení používaná místními vývojářskými nástroji.

Položky v kolekci Values v souboru local.settings.json projektu mají zrcadlit položky v nastavení aplikace funkcí v Azure.

Ve výchozím nastavení se tato nastavení nemigrují automaticky při publikování projektu do Azure. Po dokončení publikování se můžete rozhodnout publikovat nastavení z local.settings.json do aplikace funkcí v Azure. Další informace najdete v tématu Publikování nastavení aplikace.

Hodnoty v připojovacích stringech se nikdy nepublikují.

Kód může číst hodnoty nastavení aplikace funkcí jako proměnné prostředí. Další informace naleznete v tématu Proměnné prostředí.

  • Kód může číst hodnoty nastavení aplikace funkcí jako proměnné prostředí. Další informace naleznete v tématu Proměnné prostředí.
  • Kód může číst hodnoty nastavení aplikace funkcí jako proměnné prostředí. Další informace naleznete v tématu Proměnné prostředí.
  • Kód může číst hodnoty nastavení aplikace funkcí jako proměnné prostředí. Další informace naleznete v tématu Proměnné prostředí.
  • Kód může číst hodnoty nastavení aplikace funkcí jako proměnné prostředí. Další informace naleznete v tématu Proměnné prostředí.

Nastavení aplikace v Azure

Nastavení v souboru local.settings.json v projektu by se měla shodovat s nastavením aplikace v aplikaci funkcí v Azure. Do local.settings.json i aplikace funkcí v Azure musíte přidat všechna nová nastavení. Tato nastavení se při publikování projektu nenahrají automaticky. Stejně tak musíte stáhnout všechna nastavení, která vytvoříte v aplikaci funkcí na portálu , do místního projektu.

Publikování nastavení aplikace

Nejjednodušší způsob, jak publikovat požadovaná nastavení do aplikace funkcí v Azure, je použít odkaz Upload, který se zobrazí po publikování projektu:

Snímek obrazovky pro nahrání nastavení aplikace

Nastavení můžete publikovat také pomocí příkazu Azure Functions: Nahrát místní nastavení na paletě příkazů. Jednotlivá nastavení můžete do nastavení aplikace v Azure přidat pomocí příkazu Azure Functions: Přidat nové nastavení.

Návod

Než soubor publikujete, nezapomeňte soubor local.settings.json uložit.

Pokud je místní soubor zašifrovaný, proces ho dešifruje, publikuje ho a znovu ho zašifruje. Pokud v těchto dvou umístěních existují konfliktní hodnoty, zobrazí se výzva, abyste zvolili, jak pokračovat.

Zobrazení stávajícího nastavení aplikace v oblasti Azure: Functions rozbalením předplatného, vaší funkční aplikace a Nastavení aplikace.

 Snímek obrazovky pro zobrazení nastavení aplikace funkcí v Visual Studio Code.

Stáhnout nastavení z Azure

Pokud v Azure vytvoříte nastavení aplikace, můžete je stáhnout do souboru local.settings.json pomocí příkazu Azure Functions: Stáhnout vzdálená nastavení.

Stejně jako při nahrávání, pokud je místní soubor zašifrovaný, proces ho dešifruje, aktualizuje a znovu ho zašifruje. Pokud v těchto dvou umístěních existují konfliktní hodnoty, zobrazí se výzva, abyste zvolili, jak pokračovat.

Nainstalujte rozšíření vazby

Kromě triggerů HTTP a časovače se vazby implementují v balíčcích rozšíření.

Balíčky rozšíření musíte explicitně nainstalovat pro triggery a vazby, které je potřebují. Konkrétní balíček, který nainstalujete, závisí na modelu procesu projektu.

Spuštěním příkazu dotnet add package v okně terminálu nainstalujte balíčky rozšíření, které potřebujete v projektu. Tato šablona ukazuje, jak přidat vazbu pro knihovnu tříd izolovaného procesu:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

Nahraďte <BINDING_TYPE_NAME> názvem balíčku, který obsahuje požadovanou vazbu. Požadovaný referenční článek k vazbě najdete v seznamu podporovaných vazeb.

V příkladu nahraďte <TARGET_VERSION> konkrétní verzí balíčku, například 3.0.0-beta5. Platné verze jsou uvedeny na jednotlivých stránkách balíčku na NuGet.org. Hlavní verze, které odpovídají aktuálnímu modulu runtime Functions, jsou uvedeny v referenčním článku pro vazbu.

Návod

Pro instalaci balíčků rozšíření vazeb lze také použít příkazy NuGet v sadě C# Dev Kit.

Skript jazyka C# používá sady rozšíření.

Nejjednodušší způsob, jak nainstalovat rozšíření vazeb, je povolit balíčky rozšíření. Když povolíte sady, automaticky se nainstaluje předdefinovaná sada balíčků rozšíření.

Pokud chcete povolit sady rozšíření, otevřete soubor host.json a aktualizujte jeho obsah tak, aby odpovídal následujícímu kódu:

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

Pokud z nějakého důvodu nemůžete k instalaci rozšíření pro váš projekt použít sadu rozšíření, podívejte se na Explicitní instalace rozšíření.

Monitorovací funkce

Když spouštíte funkce místně, nástroje Core Tools přenášejí data protokolů do konzole terminálu. Data protokolu můžete získat také při spuštění projektu Functions ve funkční aplikaci v Azure. K protokolům streamování se můžete připojit v Azure a zobrazit data protokolů téměř v reálném čase. Application Insights byste měli povolit, abyste lépe pochopili, jak se vaše aplikace funkcí chová.

Streamovací protokoly

Při vývoji aplikace je často užitečné zobrazit informace o protokolování téměř v reálném čase. Můžete zobrazit datový proud souborů protokolu vygenerovaných vašimi funkcemi. Zapněte protokoly z palety příkazů pomocí příkazu Azure Functions: Start streaming logs. Tento výstup je příkladem streamovaných logů pro požadavek na funkci aktivovanou HTTP:

Snímek obrazovky s výstupem protokolů streamování pro trigger H T T P

Další informace najdete v tématu Protokoly streamování.

Application Insights

Měli byste monitorovat spuštění vašich funkcí prostřednictvím integrace vaší funkční aplikace s Application Insights. Při vytváření aplikace funkcí na portálu Azure se tato integrace ve výchozím nastavení provádí. Při vytváření funkční aplikace během publikování ve Visual Studio je potřeba integrovat Application Insights samostatně. Postup najdete v tématu Povolení integrace Application Insights.

Další informace o monitorování pomocí Application Insights najdete v tématu Monitor Azure Functions.

Projekty skriptů jazyka C#

Ve výchozím nastavení se všechny projekty jazyka C# vytvářejí jako projekty zkompilované knihovny tříd jazyka C#. Pokud místo toho chcete pracovat s projekty skriptů jazyka C#, musíte v nastavení rozšíření Azure Functions vybrat skript jazyka C#:

  1. Vyberte Soubor>Předvolby>Nastavení.

  2. Přejděte na Uživatelských nastavení>Extensions>Azure Functions.

  3. Zvolte C#Script z Azure Function: Project Language.

Po dokončení těchto kroků budou volání provedená pomocí základních nástrojů Core Tools zahrnovat možnost --csx, která generuje a publikuje soubory projektů ve formě C# skriptů (.csx). Když zadáte tento výchozí jazyk, všechny projekty, které vytvoříte, budou ve výchozím nastavení projekty skriptů jazyka C#. Při nastavení výchozího jazyka se nezobrazí výzva k výběru jazyka projektu. Pokud chcete vytvářet projekty v jiných jazycích, musíte toto nastavení změnit nebo ho odebrat ze souboru settings.json uživatele. Po odebrání tohoto nastavení se znovu zobrazí výzva k výběru jazyka při vytváření projektu.

Referenční informace k paletě příkazů

Rozšíření Azure Functions poskytuje užitečné grafické rozhraní pro interakci s aplikacemi funkcí v Azure. Stejné funkce jsou také k dispozici jako příkazy na paletě příkazů (F1). K dispozici jsou tyto příkazy Azure Functions:

příkaz Azure Functions Popis
Přidat nová nastavení Vytvoří nové nastavení aplikace v Azure. Další informace najdete v tématu Publikování nastavení aplikace. Toto nastavení si možná budete muset stáhnout i do místního nastavení.
Konfigurace zdroje nasazení Připojí vaši aplikaci funkcí v Azure k místnímu úložišti Git. Další informace najdete v tématu Kontinuózní nasazení pro Azure Functions.
Připojení k úložišti GitHub Připojí aplikaci funkcí k úložišti GitHub.
Zkopírovat URL funkce Získá vzdálenou adresu URL funkce aktivované protokolem HTTP, která běží v Azure. Další informace najdete v tématu Získání adresy URL nasazené funkce.
Vytvoření aplikace funkce v Azure Vytvoří novou funkční aplikaci ve vašem předplatném v Azure. Další informace najdete v části o tom, jak publikovat do nové aplikace funkcí v Azure.
Dešifrování nastavení Dešifruje local settings, které byly zašifrovány příkazem Azure Functions: Encrypt Settings.
Odstranit Function App Odebere funkční aplikaci z vašeho předplatného Azure. Pokud v plánu služby App Service nejsou žádné jiné aplikace, máte také možnost tento plán odstranit. Jiné prostředky, jako jsou účty úložiště a skupiny prostředků, se neodstraní. Pokud chcete odebrat všechny prostředky, měli byste místo toho odstranit skupinu prostředků. Na váš místní projekt to nemá vliv.
Funkce odstranění Odebere existující funkci z aplikace funkcí v Azure. Vzhledem k tomu, že toto odstranění nemá vliv na místní projekt, zvažte místní odebrání funkce a opětovné publikování projektu.
Odstranění proxy serveru Odebere proxy služby Azure Functions z funkční aplikace v Azure. Další informace o proxy serverech najdete v tématu Work with Azure Functions Proxyies.
Odstranit nastavení Odstraní nastavení aplikace funkcí v Azure. Toto odstranění nemá vliv na nastavení v souboru local.settings.json.
Odpojení od úložiště Odebere propojení kontinuálního nasazení mezi funkcí v Azure a repositářem správy zdrojového kódu.
Stažení vzdáleného nastavení Stáhne nastavení z vybrané aplikace funkcí v Azure do souboru local.settings.json. Pokud je místní soubor zašifrovaný, dešifruje se, aktualizuje a znovu zašifruje. Pokud jsou v těchto dvou umístěních nastavená konfliktní hodnoty, zobrazí se výzva k výběru postupu. Před spuštěním tohoto příkazu nezapomeňte uložit změny souboru local.settings.json.
Upravit nastavení Změní hodnotu existujícího nastavení aplikace funkcí v Azure. Tento příkaz nemá vliv na nastavení v souboru local.settings.json.
Šifrování nastavení Šifruje jednotlivé položky v Values poli v místním nastavení. V tomto souboru je IsEncrypted také nastaveno na true, což určuje, že místní modul runtime dešifruje nastavení před jejich použitím. Zašifrujte místní nastavení, abyste snížili riziko úniku cenných informací. V Azure jsou nastavení aplikace vždy uložena zašifrovaná.
Spustit funkci nyní Ručně spustí funkci pomocí rozhraní API pro správu. Tento příkaz použijte k testování, a to jak místně během ladění, tak proti funkcím spuštěným v Azure. Když se spustí funkce v Azure, rozšíření nejprve automaticky získá klíč správce, který používá k volání rozhraní API vzdáleného správce, která spouští funkce v Azure. Text zprávy odeslané do rozhraní API závisí na typu triggeru. Spouště časovače nevyžadují předání žádných dat.
Inicializace projektu pro použití s VS Code Přidá požadované soubory projektu Visual Studio Code do existujícího projektu Functions. Pomocí tohoto příkazu můžete pracovat s projektem, který jste vytvořili pomocí nástrojů Core Tools.
Instalace nebo aktualizace nástrojů Azure Functions Core Tools Nainstaluje nebo aktualizuje Azure Functions Core Tools, která slouží ke spouštění funkcí místně.
Opětovné nasazení Umožňuje znovu nasadit soubory projektu z připojeného úložiště Git do konkrétního nasazení v Azure. Pokud chcete znovu publikovat místní aktualizace z Visual Studio Code, znovu publikujte projekt.
Přejmenovat nastavení Změní název klíče existujícího nastavení aplikace funkcí v Azure. Tento příkaz nemá vliv na nastavení v souboru local.settings.json. Po přejmenování nastavení v Azure byste měli stáhnout tyto změny do místního projektu.
Restartovat Restartuje aplikaci funkcí v Azure. Nasazení aktualizací také restartuje aplikaci se službami.
Nastavení služby AzureWebJobsStorage Nastaví hodnotu AzureWebJobsStorage nastavení aplikace. Toto nastavení vyžaduje Azure Functions. Nastaví se při vytvoření aplikace funkcí v Azure.
Start Spustí zastavenou aplikaci funkcí v Azure.
Spuštění protokolů streamování Spustí streamovací protokoly pro funkční aplikaci v Azure. Protokoly streamování používejte během vzdáleného řešení potíží v Azure, pokud potřebujete zobrazit informace o protokolování téměř v reálném čase. Další informace najdete v tématu Protokoly streamování.
Stop Zastaví aplikaci funkcí, která běží v Azure.
Zastavení protokolů streamování Zastaví protokoly streamování aplikace funkcí v Azure.
Přepnout jako nastavení slotu Pokud je tato možnost povolená, zajistíte, že nastavení aplikace zůstane pro daný slot nasazení trvalé.
Uninstall Azure Functions Core Tools Odebere Azure Functions Core Tools, které rozšíření vyžaduje.
Nahrát místní nastavení Nahraje nastavení ze souboru local.settings.json do zvolené aplikace funkcí v Azure. Pokud je místní soubor zašifrovaný, dešifruje se, nahraje a znovu zašifruje. Pokud jsou v těchto dvou umístěních nastavená konfliktní hodnoty, zobrazí se výzva k výběru postupu. Před spuštěním tohoto příkazu nezapomeňte uložit změny souboru local.settings.json.
View Commit in GitHub Zobrazuje nejnovější commit ve specifickém nasazení, když je vaše funkční aplikace připojená k úložišti.
Zobrazení protokolů nasazení Ukazuje protokoly pro konkrétní nasazení do aplikace funkcí v Azure.

Další kroky

Další informace o nástrojích Azure Functions Core Tools najdete v tématu Work with Azure Functions Core Tools.

Další informace o vývoji funkcí jako knihoven tříd .NET najdete v Azure Functions referenčních informacích pro vývojáře v jazyce C#. Tento článek také obsahuje odkazy na příklady použití atributů k deklaraci různých typů vazeb podporovaných Azure Functions.