-
Notifications
You must be signed in to change notification settings - Fork 21
애저 펑션 개발
Justin Yoo edited this page Jun 16, 2018
·
1 revision
애저 포탈에서 리소스 그룹을 생성합니다. 이 리소스 그룹 이름은 이번 세션에서 계속 사용하게 되므로 별도로 메모해 둡니다.
애저 포탈에서 스토리지 어카운트를 아래와 같이 생성합니다. 스토리지 어카운트 이름도 별도로 메모해 둡니다.
스토리지 어카운트 생성 후, 커넥션 스트링을 확인합니다.
핸즈온랩에 필요한 리포지토리를 깃헙 본인의 계정으로 먼저 포크합니다. 이어서 아래와 같이 깃헙에서 클론 받습니다.
git clone https://github.com/[깃헙 계정]/Dockerised-Azure-Functions-in-AppVeyor-CI-CD-Pipeline.git ~/hol
애저 펑션 프로젝트를 생성합니다.
git checkout step-01
TestHttpTrigger.cs
파일에 아래와 같이 입력합니다.
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
namespace Dockerised.FunctionApp
{
public static class TestHttpTrigger
{
[FunctionName(nameof(TestHttpTrigger))]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "test")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
var name = req.Query["name"];
if (string.IsNullOrWhiteSpace(name))
{
return new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
return new OkObjectResult($"Hello, {name}");
}
}
}
local.settings.json
파일을 아래와 같이 수정합니다. 이 때 위에서 만든 애저 스토리지 어카운트의 커넥션 스트링을 사용합니다.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "[애저 스토리지 어카운트 커넥션 스트링]",
"AzureWebJobsDashboard": "[애저 스토리지 어카운트 커넥션 스트링]"
}
}
앞서 작성한 애저 펑션 코드를 빌드할 차례입니다. 아래 명령어를 이용해서 애저 펑션을 빌드합니다.
dotnet build . -o output
빌드가 끝난 후 output
디렉토리로 이동해서 애저 펑션을 실행시켜 봅니다.
cd output
func host start
웹브라우저를 통해 http://localhost:7071/api/test?name=[아무거나]
를 입력하고 결과를 확인합니다.