Мы настраиваем функции Azure для запуска, когда у нас есть файл в хранилище BLOB-объектов Azure.
Этот файл будет использоваться в качестве входных данных для скрипта Python, размещенного на Github.
Вот базовый сценарий функции Azure, созданный после установки функции с помощью кода Visual Studio:
журнал импорта
импортировать azure.functions как func
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
цель состоит в том, чтобы этот входной файл TOML, загруженный в большой двоичный объект, служил загрузчиком переменных.
Затем сценарий запускается и создает другой файл, который будет сохранен в другом большом двоичном объекте.
Используя веб-приложение, мы можем загрузиться в большой двоичный объект, однако функция не запускается при просмотре вкладки монитора:
Мы хотим, чтобы в main() функции azure запускался проект python на github для запуска с входным файлом. поэтому становится:
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
# python src/main.py fileInput.toml
Любая идея, почему включенная функция не работает и что добавить в ее функцию?
Я воспроизвел в своей среде и получил ожидаемые результаты, как показано ниже, и выполнил следующий процесс:
Во-первых, создали приложение-функцию и учетную запись хранения.
Затем в разделе конфигурации функционального приложения проверьте правильность строки подключения в AzureWebJobsStorage
:
Затем создайте триггер функции большого двоичного объекта:
Теперь в коде триггера функции:
import logging
import azure.functions as func
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
Теперь в function.json проверьте имя контейнера:
samples-workitems
Теперь создайте контейнер в учетной записи хранения, связанной с приложением-функцией:
Затем загрузите большой двоичный объект внутри контейнера:
После загрузки большого двоичного объекта:
Выход:
Проверьте в разделе «Журналы» функционального приложения:
Теперь используйте приведенный ниже запрос, чтобы проверить, сработал ли триггер blob:
traces
|where message contains "Python blob trigger function processed blob"
ух ты. Спасибо. моей недостающей частью тогда была аутентификация.
Вы проверили правильность строки подключения к учетной записи хранения и сопоставление с правильным контейнером?