.Net ( core ) 액션 사용하기

Cloud Functions에서는 .Net 코드를 실행시킬 수 있는 액션 컨테이너를 제공합니다. .Net 2.2 버전을 기본으로 제공하며 독립된 환경에서 코드를 실행할 수 있습니다.

.Net Core 프로젝트를 컴파일, 테스트 및 압축하기 위해서는 .Net Core SDK를 로컬에 설치하고 환경변수 DOTNET_HOMEdotnet 실행파일이 있는 위치로 설정하셔야 합니다.

액션 생성하기

.Net Core Action은 다음과 같은 .Net Core 라이브러리와 Main 함수의 구조로 되어있다.

public Newtonsoft.Json.Linq.JObject Main(Newtonsoft.Json.Linq.JObject);

예를들어 다음과 같은 C# 프로젝트를 만들어 봅니다. NCP.CloudFunctions.Example.Dotnet

dotnet new classlib -n NCP.CloudFunctions.Example.Dotnet -lang "C#"
cd NCP.CloudFunctions.Example.Dotnet

그리고 JSON 사용을 위해 Newtonsoft.Json NuGet 패키지를 아래와 같이 설치 합니다.

dotnet add package Newtonsoft.Json -v 12.0.1

이제 Hello.cs를 아래와 같이 만들어 간단한 코드를 작성해 봅니다.

using System;
using Newtonsoft.Json.Linq;

namespace NCP.CloudFunctions.Example.Dotnet
{
    public class Hello
    {
        public JObject Main(JObject args)
        {
            string name = "stranger";
            if (args.ContainsKey("name")) {
                name = args["name"].ToString();
            }
            JObject message = new JObject();
            message.Add("greeting", new JValue($"Hello, {name}!"));
            return (message);
        }
    }
}

프로젝트 내용을 발행하기 위해서는 아래의 커멘드를 실행할 수 있다.

dotnet publish -c Release -o out

발행 된 파일을 zip으로 만들기 위해서는 아래와 같은 커맨드를 입력합니다.

cd out
zip -r -0 helloDotNet.zip *

.Net을 이용해서 Action을 만들 때 Main 함수 부분은 특별히 다르게 작성해야 합니다. Main 함수라고 할 때 {Assembly}::{Class Full Name}::{Method}의 형태여야 합니다. 위의 예를 가지고 작업하면 아래와 같은 형태로 입력해야 합니다.

NCP.CloudFunctions.Example.Dotnet::NCP.CloudFunctions.Example.Dotnet.Hello::Main

img

기본 파라미터 설정하기

매번 액션을 실행할 때마다 파라미터를 전달하는 대신, 특정 파라미터에 기본값을 지정할 수 있습니다. 위에서 생성한 hello 액션의 place 파라미터에, 기본 값을 등록해보도록 하겠습니다.

img

액션 실행 시 파라미터 전달하기

액션 실행 시 입력으로 파라미터를 전달할 수 있습니다. Main 함수에 전달되는 파라미터는 JSON object 형식으로 전달됩니다.

파라미터는 액션 실행 시 직접 입력하거나, JSON 형식의 파일을 작성하여 전달할 수 있습니다. 파일을 통해 파라미터를 전달하는 경우에는 아래와 같은 JSON 형식의 파일을 작성해야 합니다.

img

액션 런타임 정보

각 액션 컨테이너에는 기본 라이브러리들이 내장되어 있으며, 이 라이브러리들은 별도의 추가 작업 없이 임포트하여 사용하실 수 있습니다.

연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...