@BlobInput возвращается нулевым в функции Java Azure - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь использовать аннотацию @BlobInput в функции Java Azure, и аргумент, который я аннотирую, не заполняется содержимым большого двоичного объекта, на который я ссылаюсь.

Я полагаю, что это может иметь какое-то отношение к полю "имя" в BlobInput, но мне немного неясно, чем оно должно быть заполнено. Согласно документации здесь , это должно быть

Имя переменной, представляющей BLOB-объект в коде функции

Но я очень неясно, что именно это означает. Есть ли что-то, что я должен добавить в мои local.settings. json, чтобы заставить эту вещь работать так, как я ожидаю?

1 Ответ

0 голосов
/ 30 апреля 2020

Это означает только то, что функция отсутствует. Файл json при написании кода функции java azure, а после компиляции функции зависит от файла функции. json для получения входных данных. , Подробнее о функции. json см. Здесь: Код функции .

После компиляции функции java вы можете следовать этой структуре папки , чтобы получить function. json file, тогда вы найдете, что имя привязки @BlobInput будет именем привязки ввода BLOB-объекта.

Ниже мой тестовый код, получите содержимое BLOB-объекта с привязкой @BlobInput.

public HttpResponseMessage  run(
             @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context,
             @BlobInput(
                     name = "file",
                     dataType = "binary",
                     path = "test/abc1.txt",connection = "AzureWebJobsStorage")
                     byte[] content) {
        context.getLogger().info("Java HTTP trigger processed a request.");


        String str = new String(content);
        context.getLogger().info(str);
        return request.createResponseBuilder(HttpStatus.OK)
                .body("The size is: " + content.length + " bytes")
                .build();


    }

А вот и моя функция. json привязка файла, вы можете увидеть здесь имя это file.

"bindings" : [ {
    "type" : "httpTrigger",
    "direction" : "in",
    "name" : "req",
    "methods" : [ "GET", "POST" ],
    "authLevel" : "ANONYMOUS"
  }, {
    "type" : "blob",
    "direction" : "in",
    "name" : "file",
    "path" : "test/abc1.txt",
    "dataType" : "binary",
    "connection" : "AzureWebJobsStorage"
  }, {
    "type" : "http",
    "direction" : "out",
    "name" : "$return"
  } ]

А ниже мой результат теста, журнал содержимое файла и отправьте ответ. Если у вас все еще есть ошибки, пожалуйста, поделитесь кодом, чтобы я смог пройти тестирование. Надеюсь, это поможет вам.

enter image description here

...