Spring Cloud Azure功能

2024-01-05 17:24 更新

所述天青適配器自舉一個(gè)Spring Cloud功能上下文和通道功能從天青框架呼叫到用戶的功能,使用Spring Boot結(jié)構(gòu),其中必要的。Azure Functions具有一個(gè)非常獨(dú)特但具有侵入性的編程模型,涉及特定于平臺(tái)的用戶代碼中的注釋。 與Spring Cloud一起使用的最簡(jiǎn)單方法是擴(kuò)展基類,并在其中編寫帶有@FunctionName批注的方法,該批注委派給基類方法。

該項(xiàng)目為Spring Cloud Function應(yīng)用程序提供了到Azure的適配器層。您可以編寫一個(gè)類型為Function的單個(gè)@Bean的應(yīng)用程序,如果正確放置了JAR文件,則可以將其部署在Azure中。

必須擴(kuò)展AzureSpringBootRequestHandler,并提供輸入和輸出類型作為帶注釋的方法參數(shù)(使Azure能夠檢查類并創(chuàng)建JSON綁定)。基類有兩個(gè)有用的方法(handleRequesthandleOutput),您可以將實(shí)際的函數(shù)調(diào)用委派給該方法,因此大多數(shù)情況下,該函數(shù)只會(huì)有一行。

例:

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處理程序?qū)⑽山oFunction<Foo,Bar> bean(或Function<Publisher<Foo>,Publisher<Bar>>)。某些Azure觸發(fā)器(例如@CosmosDBTrigger)會(huì)導(dǎo)致輸入類型為List,在這種情況下,您可以綁定到Azure處理程序中的ListString(原始JSON)。 List輸入委托給輸入類型為Map<String,Object>Publisher或相同類型的ListFunction。 Function的輸出可以是List(一對(duì)一)或單個(gè)值(聚合),并且Azure聲明中的輸出綁定應(yīng)該匹配。

如果您的應(yīng)用具有多個(gè)Function等類型的@Bean等,那么您可以通過(guò)配置function.name選擇一個(gè)。或者,如果使Azure處理程序方法中的@FunctionName與函數(shù)名稱匹配,則它應(yīng)以這種方式工作(也適用于具有多個(gè)函數(shù)的函數(shù)應(yīng)用程序)。 這些功能是從Spring Cloud FunctionCatalog中提取的,因此默認(rèn)功能名稱與bean名稱相同。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)