Я получаю значение 'fun c .Out' неприемлемо при попытке записи в хранилище BLOB-объектов azure с использованием функции python - PullRequest
2 голосов
/ 24 января 2020

Я хочу записать в хранилище больших двоичных объектов azure, используя Azure Функции в Python.

Я использую привязки хранилища больших двоичных объектов для Azure Функции.

Моя функция. json:

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "name": "inputblob",
      "type": "blob",
      "path": "{containerName}/{blobName}.json",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "in"
    },
    {
      "name": "outputblob",
      "type": "blob",
      "path": "{containerName}/{blobName}.json",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "out"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    }
  ]
}

И мой код Python выглядит следующим образом:

    import logging
    import azure.functions as func
    import azure.storage.blob
    from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
    import json, os

    def main(req: func.HttpRequest, inputblob: func.InputStream, outputblob: func.Out[func.InputStream]) -> func.HttpResponse:
        logging.info('Python HTTP trigger function processed a request.')

        # Initialize variable for tracking any changes
        anyChanges= False

        # Read JSON file
        jsonData= json.loads(inputblob.read())

        # Make changes to jsonData (omitted for simplicity) and update anyChanges

        # Upload new JSON file
        if anyChanges:
            outputblob.set(jsonData)

        return func.HttpResponse(f"Input data: {jsonData}. Any changes: {anyChanges}.")

Однако это не работает вообще, со следующей ошибкой выбрасывается:

Значение 'fun c .Out' неприемлемо

Еще один парень в декабре уже попросил разрешения той же проблемы, но ответ не решить вопрос

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Та же проблема с использованием 3.7.0, переключилась на 3.6.8 для ее решения

1 голос

У меня была такая же проблема, и я на самом деле обнаружил, что проблема решена путем удаления библиотеки pylint:

pip uninstall pylint

Я не уверен, что это проблема в pylint или если Azure Функции не могут сосуществовать с pylint в Python 3.7, но удаление этого помогло мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...