Невозможно выполнить функцию azure при локальном запуске из кода против java - PullRequest
1 голос
/ 03 мая 2020

Возникла проблема при вызове функции azure, разработанной в java с VS Code. Все идет хорошо, кроме команды запуска. Когда я запускаю команду 'mvn azure -functions: run', она запускается правильно. Но я не могу ударить его почтальоном. Вот мой код.

public class Function {
    @FunctionName("hello")
    public HttpResponseMessage hello(@HttpTrigger(name = "req", methods = {"get", "post"}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage req,
                       final ExecutionContext context) {
        context.getLogger().info("Java HTTP triger processed a request.");

        String query = req.getQueryParameters().get("name").toString();

        return req.createResponse(200, "hELLO "+query);
    }
}

1 Ответ

0 голосов
/ 04 мая 2020

Обновление:

Спасибо за участие Сати Паниграхи, решение состоит в том, чтобы запустить mvn generate для генерации azure функции. Кстати, функциональные инструменты azure не имеют шаблона языка java. Для получения дополнительной информации, пожалуйста, взгляните на это: c:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-kotlin-maven?tabs=cmd#generate -a-new-functions-project

Оригинальный ответ:

Пожалуйста, посмотрите этот официальный шаблон:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=java#example

Я думаю, что HttpRequestMessage не имеет метода с именем createResponse. Если вы хотите добиться, пожалуйста, попробуйте следующие коды, он отлично работает на моей стороне:

package com.function;

import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;


public class Function {
    @FunctionName("hello")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> req,
            final ExecutionContext context) {
        context.getLogger().info("Java HTTP trigger processed a request.");

        String query = req.getQueryParameters().get("name").toString();
        return req.createResponseBuilder(HttpStatus.OK).body("hELLO " + query).build();
    }
}

enter image description here

enter image description here

Пожалуйста, попробуйте, и дайте мне знать, если у вас есть какие-то проблемы. :)

...