Az Azure WebJobs Storage queues ügyfélkódtára a .NET-hez – 5.1.1-es verzió
Ez a bővítmény az Azure Storage-üzenetsorok Azure Functions való elérésére szolgál.
Első lépések
A csomag telepítése
Telepítse a Storage Queues bővítményt a NuGettel:
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
Előfeltételek
A csomag használatához Azure-előfizetésre és tárfiókra van szükség.
Új tárfiók létrehozásához használhatja az Azure Portalt, a Azure PowerShell vagy az Azure CLI-t. Íme egy példa az Azure CLI használatával:
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
Az ügyfél hitelesítése
Ahhoz, hogy a bővítmény hozzáférjen az üzenetsorokhoz, szüksége lesz az Azure Portalon található kapcsolati sztring vagy az alábbi Azure CLI-kódrészletre.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
A kapcsolati sztring az AzureWebJobsStorage alkalmazásbeállítással adhatók meg.
Fő fogalmak
Üzenetsor-eseményindító használata
A Queue Storage-eseményindító egy függvényt futtat, amikor a rendszer üzeneteket ad hozzá az Azure Queue Storage-hoz.
Kövesse az oktatóanyagot, amelyből megtudhatja, hogyan figyelheti meg az üzenetsorokat Azure Functions.
Üzenetsor-kötés használata
Azure Functions létrehozhat új Azure Queue Storage-üzeneteket egy kimeneti kötés beállításával.
Kövesse a kötési oktatóanyagot, amelyből megtudhatja, hogyan használhatja ezt a bővítményt üzenetek üzenetsorokba való létrehozásához Azure Functions.
Példák
Üzenetsor figyelés
Az alábbi példakészlet bemutatja, hogyan fogadhatja és reagálhat az üzenetsorba felvett üzenetekre.
Üzenetsor kötése sztringhez
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);
}
}
Üzenetsor kötése a BinaryData-hoz
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());
}
}
Üzenetsor kötése a QueueMessage-hez
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());
}
}
Üzenetsor kötése egyéni típushoz
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);
}
}
Üzenetsor kötése a JObjecthez
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"]);
}
}
Üzenetek közzététele az üzenetsorba
Az alábbi példakészlet bemutatja, hogyan adhat hozzá üzeneteket az üzenetsorhoz attribútum használatával Queue
.
A QueueTrigger
csak a minta teljességére szolgál, vagyis bármely más triggermechanizmus használható helyette.
Üzenet közzététele sztringként
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;
}
}
Közzétételi üzenet BinaryData néven
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;
}
}
Üzenet közzététele QueueMessage néven
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;
}
}
Üzenet közzététele egyéni típusként out paraméteren keresztül
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;
}
}
Üzenet közzététele egyéni típusként gyűjtőn keresztül
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);
}
}
Üzenetsor tulajdonságainak elérése
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);
}
}
A bővítmény konfigurálása
Tekintse meg a függvények mintaalkalmazását.
Hibaelhárítás
Hibaelhárítási útmutatásért tekintse meg a monitorozási Azure Functions című témakört.
Következő lépések
Olvassa el az Azure-függvények bemutatását vagy az Azure-függvények létrehozását ismertető útmutatót.
Közreműködés
A tár felépítéséről, teszteléséről és közreműködéséről további információt a Storage CONTRIBUTING.md talál.
A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. Részletekért látogasson el cla.microsoft.com.
A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.