Веб-задания Azure не будут запускаться из очереди хранилища Azure

Контекст

  • Я использую установку Python 3.12 / Linux в Azure
  • Я развернул Django в веб-службах Azure
  • У меня также есть Django Celery, развернутый как Azure WebJobs в том же сервисе

Проблема

Сельдерей готовится абсолютно нормально.

Однако, когда я настраиваю триггер из очереди хранения, он не работает. Я пытаюсь вручную отправить сообщение в очередь.

Вот несколько кодов для справки

  • function.json
{
    "bindings": [
        {
            "name": "myQueueItem",
            "type": "queueTrigger",
            "direction": "in",
            "queueName": "%AZURE_STORAGE_QUEUE_NAME%",
            "connection": "AzureWebJobsStorage"
        }
    ],
    "disabled": false
}
  • settings.job
{
    "stopping_wait_time": 60,
    "is_singleton": true
}
  • run.sh
#!/bin/bash
# Activate the Python environment
echo "Triggerd"

Попытки

  1. Изначально я пытался использовать управляемую идентификацию, поэтому я настроил следующие переменные среды (или настройки приложения)
AzureWebJobsStorage__credential: 'managedidentity'
AzureWebJobsStorage__accountName: storageAccount.name
AzureWebJobsStorage__queueServiceUri: 'https://${storageAccount.name}.queue.${storageSuffix}/'
  1. Я также попытался выполнить настройку с помощью строки подключения. Я скопировал пользовательский интерфейс/UX учетной записи хранилища Azure. Я смог подключиться из своей локальной системы.

Я пробовал комбинацию 1 и 2 вместе с другой конфигурацией в function.json, ничего не работает.

Редактировать:

  • Для дополнительного контекста я также присвоил Storage Blob Data Contributor и Storage Queue Data Contributor службе веб-приложений Azure.

Вам нужно будет создать функциональное приложение на Python, пожалуйста, смотрите пример ниже:
https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&pivots=programming-language-python

Поскольку триггеры и привязки Python не поддерживаются для запуска в качестве веб-задания, вместо этого вам нужно будет создать функциональное приложение.

Вернуться на верх