spring tool suite에서 AzureFunctions 프로젝트 만들기

4356 단어 AzureFunctionsspring
※Maven의 설정 등등은 공식이나 다른 기사에 자세한 해설이 있으므로 할애. 이러한 설정이 되어 있는 전제로 이야기를 진행해 갑니다.

프로젝트 만들기



spring tool suite를 시작하면
왼쪽 상단의 [파일] → [신규] → [Maven 프로젝트]를 선택

기본 작업 공간 설정 (요약 프로젝트 폴더의 출력 대상)을 설정하면 다음

아키타입 추가를 선택합니다.
아키타입 그룹 ID:com.microsoft.azure
아키타입 아티팩트 ID:azure-functions-archetype
아키타입 버전:1.20(19/3 시점의 최신.참조: Maven Archetype For Azure Functions )
선택

추가한 아키타입을 선택하고 다음.

그룹 ID 등을 임의의 값으로 입력.
(예)
groupId: hoge
artifactId: hoge.functions
버전: 1.3.0
appName: hoge
appRegion: kr
resourceGroup: hoge.resource

버전 참조: Maven Plugin For Azure Functions 버전 목록

프로젝트 실행하기



Java11에서는 현재 지원되지 않습니다.



현시점에서는 AzureFunctions는 Java8까지밖에 서포트하고 있지 않기 때문에 Java11로 실행하려고 해도 실행할 수 없다.
참조 : Azure Functions에서 지원되는 언어

Failed to execute goal com.microsoft.azure:azure-functions-maven-plugin:1.3.0:package (package-functions) on project hoge.functions: Local JDK version 11.0.2 does not meet the requirement of the Maven plugin for Azure Functions. The supported version is JDK 8

그래서 자신의 환경에서는 zulu-8을 사용하여 실행하고 있다.
[프로젝트]를 마우스 오른쪽 버튼으로 클릭 → [빌드 경로] → [빌드 경로 구성]에서 JRE 시스템 라이브러리가 Java8 계열인지 확인.

그렇지 않은 경우 라이브러리 추가에서 JRE 시스템 라이브러리를 선택합니다.
[설치된 JRE]에서 [추가]를 선택하여 JDK까지의 Path를 설정합니다.

로컬에서 AzureFunctions의 동작 확인



※프로젝트의 아이콘에 × 마크가 있는 경우는 [프로젝트]를 오른쪽 클릭→[Maven]→[프로젝트의 갱신]

빌드
[프로젝트]를 오른쪽 클릭 → [실행]에서 Maven Clean,Maven install,Maven 빌드를 순서대로 실행한다.

AzureFunctions 실행
[프로젝트]를 오른쪽 클릭 → [로컬 터미널에 표시]를 선택하고 아래에 터미널이 표시되므로 다음을 실행.
mvn azure-functions:run

그러면 번개 같은 마크가 출력될 것.


AzureFunctions에 액세스해 보기



출력된 문자열에 아래와 같은 URL이 기술되어 있으므로 액세스 해 본다.



우선 처음에 localhost:7071에 액세스하면 이런 느낌의 화면이 된다.



다음에 디폴트로 작성되고 있는 Function에 액세스 해 본다.
디폴트의 ​​함수의 기능은 name로서 받은 문자에 hello를 덧붙이는 것만의 기능.
@FunctionName("HttpTrigger-Java")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
        final ExecutionContext context) {
    context.getLogger().info("Java HTTP trigger processed a request.");

    // Parse query parameter
    String query = request.getQueryParameters().get("name");
    String name = request.getBody().orElse(query);

    if (name == null) {
        return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a name on the query string or in the request body").build();
    } else {
        return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
    }
}

별도로 명령 프롬프트를 시작하고 다음 명령을 실행합니다.
curl http://localhost:7071/api/HttpTrigger-Java?name=world
Hello,world

다음 명령으로도 가능.
curl -w '\n' -d world http://localhost:7071/api/HttpTrigger-Java

참고 기사



java에서 Azure functions

좋은 웹페이지 즐겨찾기