.NET용 Azure WebJobs Storage 큐 클라이언트 라이브러리 - 버전 5.1.1
이 확장은 Azure Functions Azure Storage 큐에 액세스하기 위한 기능을 제공합니다.
시작
패키지 설치
NuGet을 사용하여 스토리지 큐 확장을 설치합니다.
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
필수 구성 요소
이 패키지를 사용하려면 Azure 구독 및 스토리지 계정이 필요합니다.
새 Storage 계정을 만들려면 Azure Portal, Azure PowerShell 또는 Azure CLI를 사용할 수 있습니다. 다음은 Azure CLI 사용 예입니다.
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
클라이언트 인증
확장이 큐에 액세스하려면 Azure Portal 에서 또는 아래의 Azure CLI 코드 조각을 사용하여 찾을 수 있는 연결 문자열이 필요합니다.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
연결 문자열은 AzureWebJobsStorage 앱 설정을 통해 제공할 수 있습니다.
주요 개념
큐 트리거 사용
큐 스토리지 트리거는 메시지가 Azure Queue Storage에 추가될 때 함수를 실행합니다.
자습서에 따라 Azure Functions 큐를 수신 대기하는 방법에 대해 알아보세요.
큐 바인딩 사용
Azure Functions에서 출력 바인딩을 설정하여 새 Azure Queue Storage 메시지를 만들 수 있습니다.
바인딩 자습서에 따라 Azure Functions 큐에 메시지를 생성하는 데 이 확장을 사용하는 방법을 알아보세요.
예제
큐 수신 대기
다음 예제 집합은 큐에 추가되는 메시지를 수신하고 대응하는 방법을 보여 줍니다.
문자열에 큐 메시지 바인딩
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);
}
}
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());
}
}
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());
}
}
사용자 지정 형식에 큐 메시지 바인딩
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);
}
}
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"]);
}
}
큐에 메시지 게시
다음 예제 집합에서는 특성을 사용하여 Queue
큐에 메시지를 추가하는 방법을 보여 줍니다.
는 QueueTrigger
샘플 완성도에만 사용됩니다. 즉, 다른 트리거 메커니즘을 대신 사용할 수 있습니다.
메시지를 문자열로 게시
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;
}
}
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;
}
}
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;
}
}
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;
}
}
수집기를 통해 사용자 지정 형식으로 메시지 게시
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);
}
}
큐 속성에 액세스
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);
}
}
확장 구성
샘플 함수 앱을 참조하세요.
문제 해결
문제 해결 지침은 Azure Functions 모니터링을 참조하세요.
다음 단계
Azure Function 소개 또는 Azure Function 가이드 만들기를 읽어보세요.
참여
이 라이브러리의 빌드, 테스트 및 기여에 대한 자세한 내용은 Storage CONTRIBUTING.md 참조하세요.
이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 cla.microsoft.com.
이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 Code of Conduct FAQ(규정 FAQ)를 참조하세요. 또는 추가 질문이나 의견은 opencode@microsoft.com으로 문의하세요.