Azure Storage Queue Latest

Scale applications based on Azure Storage Queues.

Availability: v1.0+ Maintainer: Microsoft

Trigger Specification

This specification describes the azure-queue trigger for Azure Storage Queue.

triggers:
- type: azure-queue
  metadata:
    queueName: orders
    queueLength: '5'
    queueLengthStrategy: all|visibleonly
    activationQueueLength: '50'
    connectionFromEnv: STORAGE_CONNECTIONSTRING_ENV_NAME
    accountName: storage-account-name
    cloud: AzureUSGovernmentCloud

Parameter list:

  • queueName - Name of the queue.
  • queueLength - Target value for queue length passed to the scaler. Example: if one pod can handle 10 messages, set the queue length target to 10. If the actual number of messages in the queue is 30, the scaler scales to 3 pods. (Default: 5, Optional)
  • queueLengthStrategy - all considers both visible and invisible messages, while visibleonly uses Peek to count only visible messages. In visibleonly, if the count of messages is 32 or higher, it falls back to the default all strategy, counting both visible and invisible messages. (Default: all, Optional)
  • activationQueueLength - Target value for activating the scaler. Learn more about activation here. (Default: 0, Optional)
  • connectionFromEnv - Name of the environment variable your deployment uses to get the connection string.
  • accountName - Name of the storage account that the queue belongs to.
  • cloud - Name of the cloud environment that the queue belongs to. Must be a known Azure cloud environment, or Private for Azure Stack Hub or Air Gapped clouds. (valid values: AzurePublicCloud, AzureUSGovernmentCloud, AzureChinaCloud, AzureGermanCloud, Private; default: AzurePublicCloud)

When cloud is set to Private, the endpointSuffix parameter is required. Otherwise, it is automatically generated based on the cloud environment. endpointSuffix represents the storage queue endpoint suffix of the cloud environment that the queue belongs to, e.g. queue.core.windows.net for AzurePublicCloud.

Authentication Parameters

You can authenticate by using pod identity or connection string authentication.

Connection String Authentication:

  • connection - Connection string for Azure Storage Account.

Pod identity based authentication:

Azure AD Workload Identity provider can be used.

Example

apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: azure-queue-auth
spec:
  podIdentity:
    provider: azure-workload
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: azure-queue-scaledobject
  namespace: default
spec:
  scaleTargetRef:
    name: azurequeue-function
  triggers:
  - type: azure-queue
    metadata:
      # Required
      queueName: functionsqueue
      # Optional, required when pod identity is used
      accountName: storage-account-name
      # Optional: connection OR authenticationRef that defines connection
      connectionFromEnv: STORAGE_CONNECTIONSTRING_ENV_NAME # Default: AzureWebJobsStorage. Reference to a connection string in deployment
      # or authenticationRef as defined below
      #
      # Optional
      queueLength: "5" # default 5
      # Optional
      queueLengthStrategy: "all" # or visibleonly. Default: all
      cloud: Private
      endpointSuffix: queue.local.azurestack.external # Required when cloud=Private
    authenticationRef:
        name: azure-queue-auth # authenticationRef would need either podIdentity or define a connection parameter