Spring Cloud Azure功能

2024-01-05 17:24 更新

所述天青适配器自举一个Spring Cloud功能上下文和通道功能从天青框架呼叫到用户的功能,使用Spring Boot结构,其中必要的。Azure Functions具有一个非常独特但具有侵入性的编程模型,涉及特定于平台的用户代码中的注释。 与Spring Cloud一起使用的最简单方法是扩展基类,并在其中编写带有@FunctionName批注的方法,该批注委派给基类方法。

该项目为Spring Cloud Function应用程序提供了到Azure的适配器层。您可以编写一个类型为Function的单个@Bean的应用程序,如果正确放置了JAR文件,则可以将其部署在Azure中。

必须扩展AzureSpringBootRequestHandler,并提供输入和输出类型作为带注释的方法参数(使Azure能够检查类并创建JSON绑定)。基类有两个有用的方法(handleRequesthandleOutput),您可以将实际的函数调用委派给该方法,因此大多数情况下,该函数只会有一行。

例:

public class FooHandler extends AzureSpringBootRequestHandler<Foo, Bar> {
	@FunctionName("uppercase")
	public Bar execute(
			@HttpTrigger(name = "req", methods = { HttpMethod.GET,
					HttpMethod.POST }, authLevel = AuthorizationLevel.ANONYMOUS)
                    Foo foo,
			ExecutionContext context) {
		return handleRequest(foo, context);
	}
}

此Azure处理程序将委派给Function<Foo,Bar> bean(或Function<Publisher<Foo>,Publisher<Bar>>)。某些Azure触发器(例如@CosmosDBTrigger)会导致输入类型为List,在这种情况下,您可以绑定到Azure处理程序中的ListString(原始JSON)。 List输入委托给输入类型为Map<String,Object>Publisher或相同类型的ListFunction Function的输出可以是List(一对一)或单个值(聚合),并且Azure声明中的输出绑定应该匹配。

如果您的应用具有多个Function等类型的@Bean等,那么您可以通过配置function.name选择一个。或者,如果使Azure处理程序方法中的@FunctionName与函数名称匹配,则它应以这种方式工作(也适用于具有多个函数的函数应用程序)。 这些功能是从Spring Cloud FunctionCatalog中提取的,因此默认功能名称与bean名称相同。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号