Soru

Zorluk: OrtaImplement Azure Queue Storage Solutions

You are designing a telemetry ingestion service that uses Azure Queue Storage to buffer patient monitoring logs. The data payload for each log entry varies, with some message payloads reaching up to 90 KB90\text{ KB}. When these larger payloads are sent to the queue, the client application throws an exception. Which strategy should you implement to resolve this exception?

  1. A
    Compress the log payload and store the compressed byte array within the queue's user-defined metadata properties using the QueueClient.SetMetadataAsync method.
  2. B
    Configure a system-assigned managed identity for the ingestion client and grant it the Storage Queue Data Contributor role to bypass the default message size limit.
  3. Store the log payload in Azure Blob Storage and write only the blob URI as the queue message content.Cevap
  4. D
    Generate a service-level Shared Access Signature (SAS) token with Write permission, and append it to the QueueClient connection string to increase the message capacity.

Cevap

Store the log payload in Azure Blob Storage and write only the blob URI as the queue message content.
The correct option correctly suggests storing the 90 KB90\text{ KB} payload in Azure Blob Storage and writing only the blob's URI to the queue. This is a classic implementation of the Claim-Check pattern, which is standard for bypassing the strict 64 KB64\text{ KB} message limit of Azure Queue Storage.

Adım Adım Çözüm

1
Identify the cause of the exception.
The telemetry data payload can reach up to 90 KB90\text{ KB}, which exceeds the maximum limit of 64 KB64\text{ KB} for Azure Queue Storage messages.
Understanding the physical constraints of Azure Queue Storage is necessary to select the correct architectural pattern.
2
Evaluate the architectural options for handling message payloads that exceed queue limits.
The Claim-Check pattern is the standard workaround, where large message payloads are stored in Azure Blob Storage and a reference to the blob is queued.
This allows clients to pass small pointer messages through the queue while preserving the full payload in a storage service that easily supports larger objects.
3
Implement the resolution.
Write the 90 KB90\text{ KB} log payload to a blob, retrieve its URI, and submit that URI as the message string to Azure Queue Storage.
This allows the ingestion client to succeed without throwing exceptions while ensuring downstream consumers can resolve the original payload via the blob URI.

Anahtar Kavram

Handling large queue message payloads using the Claim-Check pattern with Azure Blob Storage.
Bu soruyu puanla