Функция Spring Cloud: как сопоставить поставщика с функцией Azure - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь отобразить bean-компонент поставщика в функцию Azure с помощью Spring Cloud Function 2.0, но мне нужно расширить AzureSpringBootRequestHandler, который, кажется, поддерживает только функции с входным параметром и возвращаемым значением.У класса AzureSpringBootRequestHandler есть два параметра типа: входной и выходной, а AzureSpringBootRequestHandler.handleRequest () также ожидает входной параметр.

@Bean
public Supplier<List<String>> foo() {
    return () -> Arrays.asList("foo1", "foo2");
}

/////

class FooFunction extends AzureSpringBootRequestHandler<Void, List<String>> {
    @FunctionName("foo")
    List<String> foo(@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST},
        authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
                               ExecutionContext context) {
        return handleRequest(null, context);
    }
}

Приведенный выше код вызывает NPE для реактора.core.publisher.FluxJust. (FluxJust.j.: 60)

Изменение типа возвращаемого значения @Bean на Function<Void, List<String>> вызывает IllegalStateException "Не определена функция с именем = foo" в AzureSpringFunctionInitializer.lookup

Добавление фиктивного параметра int работает.

PS В идеале мне даже не нужно возвращаемое значение, поэтому вместо «поставщика» я бы сделал его работоспособным, но это кажется совершенно неподдерживаемым.

Любая помощь будет принята.

...