Ошибка при добавлении элемента в очередь хранилища Azure из Python

Имейте (пока) очень простую функцию Azure в Python. Пытаюсь использовать очереди Azure в первый раз. Моделирование по туториалу. Когда я пытаюсь запустить это, я получаю следующую ошибку:

System.Private.CoreLib: Исключение при выполнении функции: Функции.applyNewSurvey123. System.Private.CoreLib: Результат: Ошибка Исключение: TypeError: невозможно кодировать исходящие TypedData: не поддерживается введите "<класс 'azure_functions_worker.bindings.generic.GenericBinding'>" для Python введите "список" Стек: Файл "C:\Program Files\Microsoft\Azure Functions Основной Инструменты\воркеры\python\3.9/WINDOWS/X64\azure_functions_worker\dispatcher.py", строка 425, в _handle__invocation_request param_binding = bindings.to_outgoing_param_binding( Файл "C:\Program Files\Microsoft\Azure Functions Core Инструменты\воркеры\python\3.9/WINDOWS/X64\azure_functions_worker\bindings\meta.py", строка 160, в to_outgoing_param_binding datum = get_datum (binding, obj, pytype) Файл "C:\Program Files\Microsoft\Azure Functions Core Инструменты\воркеры\python\3.9/WINDOWS/X64\azure_functions_worker\bindings\meta.py", строка 108, в get_datum поднять TypeError( .

Мой код:

import logging
import azure.functions as func

def main(req: func.HttpRequest, 
         msg: func.Out[str]) -> func.HttpResponse:
    jsonString = req.get_json()

    try:
        msg.set(jsonString)
        return func.HttpResponse("HTTP triggered successfully.", status_code=200)
    except Exception as e:
        logging.error(f"Error: {e}")
        return func.HttpResponse("NOPE", status_code=500)

У меня настроена очередь хранилища Azure, и function.json, похоже, настроен правильно. Если я установлю msg просто на какой-то простой текст, он выдаст ту же ошибку. Если я устанавливаю сообщение logging.error после msg.set(), я вижу это сообщение. Любые идеи, что я делаю неправильно здесь?

🤔 А знаете ли вы, что...
В Python есть среды разработки, такие как Jupyter Notebook, которые упрощают работу с данными и исследованиями.


57
1

Ответ:

Решено

Я воспроизвел в своей среде и получил ожидаемые результаты, как показано ниже, и я следовал Micrsoft-Documnet, и ниже приведен код Python, который сработал для меня:

from azure.storage.queue import QueueClient
qc = QueueClient.from_connection_string(conn_str = "DefaultEndpointsProtocol=https;AccountName=rithwikstore;AccountKey=voop0PvnAUcSHWrWd6WLmNkHpA64RWNPol9OWTTXI5DbtEE/y8M113JlJATzn24LkzeNveTeOHS3+AStQIsUZg==;EndpointSuffix=core.windows.net", queue_name = "rithwik")
msg = "Hello Rithwik"
qc.send_message(msg)

Здесь вы должны указать имя своей очереди (queue_name) и строку подключения (conn_str) учетной записи хранения.

Выход: