Веб-задания 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"
Попытки
- Изначально я пытался использовать управляемую идентификацию, поэтому я настроил следующие переменные среды (или настройки приложения)
AzureWebJobsStorage__credential: 'managedidentity'
AzureWebJobsStorage__accountName: storageAccount.name
AzureWebJobsStorage__queueServiceUri: 'https://${storageAccount.name}.queue.${storageSuffix}/'
- Я также попытался выполнить настройку с помощью строки подключения. Я скопировал пользовательский интерфейс/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 не поддерживаются для запуска в качестве веб-задания, вместо этого вам нужно будет создать функциональное приложение.