Klientská knihovna front služby Azure WebJobs Storage pro .NET – verze 5.1.1
Toto rozšíření poskytuje funkce pro přístup k frontám Azure Storage v Azure Functions.
Začínáme
Instalace balíčku
Nainstalujte rozšíření Fronty úložiště pomocí NuGetu:
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
Požadavky
K použití tohoto balíčku potřebujete předplatné Azure a účet úložiště .
K vytvoření nového účtu úložiště můžete použít Azure Portal, Azure PowerShell nebo Azure CLI. Tady je příklad použití Azure CLI:
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
Ověření klienta
Aby rozšíření mohlo přistupovat k frontám, budete potřebovat připojovací řetězec, který najdete na webu Azure Portal nebo pomocí fragmentu kódu Azure CLI níže.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
Připojovací řetězec je možné zadat prostřednictvím nastavení aplikace AzureWebJobsStorage.
Klíčové koncepty
Použití triggeru fronty
Trigger služby Queue Storage spustí funkci při přidání zpráv do služby Azure Queue Storage.
V tomto kurzu se dozvíte, jak naslouchat frontám v Azure Functions.
Použití vazby fronty
Azure Functions můžete vytvářet nové zprávy služby Azure Queue Storage nastavením výstupní vazby.
Postupujte podle kurzu vazby, kde se dozvíte, jak pomocí tohoto rozšíření vytvářet zprávy do front v Azure Functions.
Příklady
Naslouchání frontě
Následující sada příkladů ukazuje, jak přijímat zprávy přidané do fronty a reagovat na ně.
Vazba zprávy fronty na řetězec
public static class QueueTriggerFunction_String
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] string message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message);
}
}
Vazba zprávy fronty na BinaryData
public static class QueueTriggerFunction_BinaryData
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] BinaryData message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.ToString());
}
}
Vazba zprávy fronty na QueueMessage
public static class QueueTriggerFunction_QueueMessage
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] QueueMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.Body.ToString());
}
}
Vazba zprávy fronty na vlastní typ
public static class QueueTriggerFunction_CustomObject
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] CustomMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.Content);
}
}
Vazba zprávy fronty s objektem JObject
public static class QueueTriggerFunction_JObject
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] JObject message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message["content"]);
}
}
Publikování zpráv do fronty
Následující sada příkladů ukazuje, jak přidat zprávy do fronty pomocí Queue
atributu .
Slouží QueueTrigger
pouze pro úplnost vzorku, tj. lze místo toho použít jakýkoli jiný aktivační mechanismus.
Publikování zprávy jako řetězce
public static class QueueSenderFunction_String_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static string Run(
[QueueTrigger("sample-queue-1")] string message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message);
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Publikování zprávy jako BinaryData
public static class QueueSenderFunction_BinaryData_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static BinaryData Run(
[QueueTrigger("sample-queue-1")] BinaryData message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message.ToString());
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Publikování zprávy jako QueueMessage
public static class QueueSenderFunction_QueueMessage_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static QueueMessage Run(
[QueueTrigger("sample-queue-1")] QueueMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message.Body.ToString());
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Publikování zprávy jako vlastního typu prostřednictvím parametru out
public static class QueueSenderFunction_CustomObject_OutParamter
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueFunction")]
public static void Run(
[QueueTrigger("sample-queue-1")] CustomMessage incomingMessage,
[Queue("sample-queue-2")] out CustomMessage outgoingMessage,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", incomingMessage.Content);
logger.LogInformation("Dispatching message to sample-queue-2");
outgoingMessage = incomingMessage;
}
}
Publikování zprávy jako vlastního typu prostřednictvím kolektoru
public static class QueueSenderFunction_CustomObject_Collector
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueFunction")]
public static void Run(
[QueueTrigger("sample-queue-1")] CustomMessage incomingMessage,
[Queue("sample-queue-2")] ICollector<CustomMessage> collector,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", incomingMessage.Content);
logger.LogInformation("Dispatching message to sample-queue-2");
collector.Add(incomingMessage);
}
}
Přístup k vlastnostem fronty
public static class Function_BindingToQueueClient
{
[FunctionName("QueueFunction")]
public static async Task Run(
[QueueTrigger("sample-queue")] string message,
[Queue("sample-queue")] QueueClient queueClient,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message);
QueueProperties queueProperties = await queueClient.GetPropertiesAsync();
logger.LogInformation("There are approximatelly {count} messages", queueProperties.ApproximateMessagesCount);
}
}
Konfigurace rozšíření
Projděte si ukázkovou aplikaci funkcí.
Řešení potíží
Pokyny k řešení potíží najdete v tématu Monitorování Azure Functions.
Další kroky
Přečtěte si úvod ke službě Azure Functions nebo si přečtěte průvodce vytvořením funkce Azure Functions.
Přispívání
Podrobnosti o vytváření, testování a přispívání do této knihovny najdete na CONTRIBUTING.md úložiště.
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.
Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.