Výstupní vazby Azure Queue Storage pro Azure Functions

Azure Functions vytvořit nové zprávy Azure Queue Storage nastavením výstupní vazby.

Informace o nastavení a podrobnostech o konfiguraci najdete v přehledu.

Příklad

Následující příklad ukazuje funkci jazyka C#, která pro každý přijatý požadavek HTTP vytvoří zprávu fronty.

[StorageAccount("MyStorageConnectionAppSetting")]
public static class QueueFunctions
{
    [FunctionName("QueueOutput")]
    [return: Queue("myqueue-items")]
    public static string QueueOutput([HttpTrigger] dynamic input,  ILogger log)
    {
        log.LogInformation($"C# function processed: {input.Text}");
        return input.Text;
    }
}

Atributy a poznámky

V knihovnách tříd jazyka C#použijte atribut QueueAttribute.

Atribut se vztahuje out na parametr nebo návratovou hodnotu funkce. Konstruktor atributu přebírá název fronty, jak je znázorněno v následujícím příkladu:

[FunctionName("QueueOutput")]
[return: Queue("myqueue-items")]
public static string Run([HttpTrigger] dynamic input,  ILogger log)
{
    ...
}

Můžete nastavit vlastnost Connection a zadat účet úložiště, který se má použít, jak je znázorněno v následujícím příkladu:

[FunctionName("QueueOutput")]
[return: Queue("myqueue-items", Connection = "StorageConnectionAppSetting")]
public static string Run([HttpTrigger] dynamic input,  ILogger log)
{
    ...
}

Kompletní příklad najdete v příkladu výstupu.

Pomocí atributu StorageAccount můžete zadat účet úložiště na úrovni třídy, metody nebo parametru. Další informace najdete v tématu Aktivační událost – atributy.

Konfigurace

Následující tabulka vysvětluje vlastnosti konfigurace vazby, které nastavíte v souboru function.json a Queue atributu .

function.json – vlastnost Vlastnost atributu Description
Typ Není k dispozici Musí být nastavená na queue . Tato vlastnost se nastaví automaticky při vytvoření triggeru v Azure Portal.
Směru Není k dispozici Musí být nastavená na out . Tato vlastnost se nastaví automaticky při vytvoření triggeru v Azure Portal.
Jméno Není k dispozici Název proměnné, která představuje frontu v kódu funkce. Nastavte $return na , aby odkazovat na návratovou hodnotu funkce.
název fronty Název fronty Název fronty.
Připojení Připojení Název nastavení aplikace nebo kolekce nastavení, která určuje, jak se připojit ke frontám Azure. Viz Připojení.

Když vyvíjíte místně, nastavení aplikace se přechádí do local.settings.jssouboru.

Připojení

connectionVlastnost je odkaz na konfiguraci prostředí, který určuje, jak se má aplikace připojit k frontám Azure. Může specifikovat:

Pokud je nakonfigurovaná hodnota přesnou shodu pro jedno nastavení a shoda předpony pro další nastavení, použije se přesná shoda.

Připojovací řetězec

Pokud chcete získat připojovací řetězec, postupujte podle kroků uvedených v části Správa přístupových klíčů účtu úložiště.

Tento připojovací řetězec by měl být uložen v nastavení aplikace s názvem, který odpovídá hodnotě určené connection vlastností konfigurace vazby.

Pokud název nastavení aplikace začíná řetězcem "AzureWebJobs", můžete zde zadat pouze zbytek názvu. Například pokud nastavíte connection na "MyStorage", modul runtime Functions vyhledá nastavení aplikace s názvem "AzureWebJobsMyStorage". pokud necháte connection prázdné, modul runtime functions použije výchozí Storage připojovací řetězec v nastavení aplikace s názvem AzureWebJobsStorage .

Připojení založená na identitách

pokud používáte rozšíření verze 5. x nebo vyšší, místo použití připojovacího řetězce s tajným klíčem můžete aplikaci použít Azure Active Directory identity. K tomu byste definovali nastavení v rámci společné předpony, která se mapuje na connection vlastnost v aktivační události a v konfiguraci vazby.

V tomto režimu přípona vyžaduje následující vlastnosti:

Vlastnost Šablona proměnné prostředí Popis Příklad hodnoty
Identifikátor URI služby front <CONNECTION_NAME_PREFIX>__queueServiceUriprvní Identifikátor URI datové roviny služby fronty, ke které se připojujete, pomocí schématu HTTPS. https://<storage_account_name>. queue.core.windows.net

1 <CONNECTION_NAME_PREFIX>__serviceUri se dá použít jako alias. Pokud jsou k dispozici obě formuláře, použije se queueServiceUri formulář. serviceUriFormulář nelze použít, pokud se má celková konfigurace připojení používat napříč objekty blob, frontami a tabulkami.

Pro přizpůsobení připojení je možné nastavit další vlastnosti. Další informace najdete v tématu běžné vlastnosti pro připojení založená na identitách.

Při hostování ve Azure Functions používá připojení založená na identitě spravovanou identitu. Identita přiřazená systémem se používá ve výchozím nastavení, i když identitu přiřazenou uživatelem je možné zadat pomocí vlastností credential clientID a . Při spuštění v jiných kontextech, jako je například místní vývoj, se místo toho použije identita vývojáře, i když je možné ji přizpůsobit. Viz Místní vývoj s připojeními založenými na identitách.

Udělení oprávnění k identitě

Kterákoli použitá identita musí mít oprávnění k provedení zamýšlených akcí. V Azure RBACbudete muset přiřadit roli pomocí předdefinované nebo vlastní role, které tato oprávnění poskytují.

Důležité

Cílová služba může zobrazit některá oprávnění, která nejsou nutná pro všechny kontexty. Pokud je to možné, dodržujte princip co nejmenších oprávnění a udělte identitě pouze požadovaná oprávnění. Pokud například aplikace potřebuje jenom čtení ze zdroje dat, použijte roli, která má oprávnění ke čtení. Přiřazení role, která umožňuje zápis do této služby, by nebylo vhodné, protože by to bylo nadměrné oprávnění pro operaci čtení. Podobně byste chtěli zajistit, aby přiřazení role bylo vymezené jenom na prostředky, které je potřeba přečíst.

Budete muset vytvořit přiřazení role, která za běhu poskytuje přístup k vaší frontě. Role pro správu, jako je vlastník, nestačí. Následující tabulka uvádí předdefinované role, které se doporučují při běžném Storage fronty. Vaše aplikace může na základě kódu, který píšete, vyžadovat další oprávnění.

Typ vazby Příklady předdefinované role
Trigger [Storage queue data reader,] [Storage zpracování datových zpráv fronty]
Výstupní vazba [Storage queue data contributor (přispěvatel]dat fronty), Storage queue data message sender (Odesílatel [datových zpráv fronty).]

Využití

Výchozí

Pomocí parametru metody, jako je , můžete napsat jednu zprávu out T paramName fronty. Místo parametru můžete použít návratový typ metody a out T může to být kterýkoli z následujících typů:

Pokud se pokusíte vytvořit vazbu na a zobrazí se chybová zpráva, ujistěte se, že máte odkaz na správnou CloudQueueMessage Storage SDK.

Ve skriptu C# a C# zapište více zpráv fronty pomocí jednoho z následujících typů:

  • ICollector<T> nebo IAsyncCollector<T>
  • CloudQueue

Další typy

Aplikace, které používají verzi 5.0.0 nebo vyšší Storage, mohou také používat typy ze sady Azure SDK pro .NET. Tato verze zahodí podporu CloudQueue starších verzí a typů a CloudQueueMessage upřednostní následující typy:

Příklady použití těchto typů najdete v GitHub úložiště pro rozšíření.

Výjimky a návratové kódy

Vazba Reference
Fronta Kódy chyb fronty
Objekt blob, tabulka, fronta Storage Kódy chyb
Objekt blob, tabulka, fronta Řešení potíží

Další kroky