Megosztás a következőn keresztül:


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.

Megjelenések