[Azure] ํ•จ์ˆ˜ (Functions)

[์›๋ณธ ๋งํฌ]

.png?type=w800) azure functions๋Š” aws lambda, gcp function์— ๋Œ€์‘๋˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜ ์‹คํ–‰ ์„œ๋น„์Šค๋‹ค.




๋น„์šฉ

๋น„์šฉ์€ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค.
https://azure.microsoft.com/ko-kr/pricing/details/functions/
ํ•œ๋‹ฌ์— 100๋งŒ๊ฑด๊นŒ์ง€๋Š” ๋ฌด๋ฃŒ๊ณ , ์ดํ›„๋ถ€ํ„ฐ๋Š” ์ถ”๊ฐ€ ์š”๊ธˆ์ด ๋ถ€๊ณผ๋œ๋‹ค.





ํ•จ์ˆ˜ ์ƒ์„ฑ

ํ•จ์ˆ˜ ์ฝ˜์†”๋กœ ์ด๋™ํ•ด "๋งŒ๋“ค๊ธฐ"๋ฅผ ํด๋ฆญํ•œ๋‹ค.

๊ตฌ๋…๊ณผ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์€ ์ทจํ–ฅ๊ป ๋„ฃ์–ด์ฃผ๊ณ , ์ด๋ฆ„๊ณผ ๋Ÿฐํƒ€์ž„์„ ๊ฒฐ์ •ํ•œ๋‹ค.

์ด๋ฆ„์ด ๋„๋ฉ”์ธ์œผ๋กœ ๋ฐ•ํ˜€์„œ unique ๊ฒ€์‚ฌ๊ฐ€ ๊นŒ๋‹ค๋กœ์šฐ๋‹ˆ ๊ฐ์•ˆ์„ ์ข€ ํ•ด์•ผํ•˜๊ณ , OS๋„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.


๋Ÿฐํƒ€์ž„์€ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€๋Š” ์•Š๋‹ค.
์ด์™ธ์— ํ•„์š”ํ•œ๊ฒŒ ์žˆ๋‹ค๋ฉด ์ปค์Šคํ…€์„ ์‚ฌ์šฉํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค.

์™„๋ฃŒ๋ฅผ ํ•˜๋ฉด, ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๊ฒƒ์ด๋‹ค.
์„ธํŒ…์—๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ๋‹ค.




์‹คํ–‰

Azure ํ•จ์ˆ˜๊ฐ€ ๊ฝค ํŽธ๋ฆฌํ•œ ์ ์ด, URL์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฝ‘์•„์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ ‘์†ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค.




์ฝ”๋“œ ํŽธ์ง‘

Azure Function์€ ์ข€ ๋ถˆํŽธํ•˜๊ฒŒ๋„ ์ฝ˜์†”์—์„œ ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ๋ณด๊ฑฐ๋‚˜ ๊ณ ์น  ์ˆ˜๋Š” ์—†๋‹ค.

๋น ๋ฅธ ์‹œ์ž‘์— ๋ณด๋ฉด ํŽธ์ง‘๊ธฐ๋ฅผ ์„ธํŒ…ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๋ ค์ค€๋‹ค.

๋‚˜๋Š” VSCode๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ VSCode ์œ„์ฃผ๋กœ๋งŒ ๋‹ค๋ฃจ๊ฒ ๋‹ค.

Azure Function์šฉ ํ™•์žฅ์„ ๊น”๊ณ 

npm์œผ๋กœ ๋‹ค์Œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

npm install -g azure-functions-core-tools@4 --unsafe-perm true

functions์šฉ ์ปค๋งจ๋“œํˆด๋„ ๊น”์•„๋‘๋Š”๊ฒŒ ์ข‹๋‹ค.
์•„๋ž˜ ๋งํฌ์—์„œ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜, ๋‹ค์šด๋ฐ›๋Š”๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=v4%2Cwindows%2Ccsharp%2Cportal%2Cbash#v2

๋ฐฐํฌ๊นŒ์ง€ ์ปค๋งจ๋“œ๋กœ ํ•˜๋ ค๋ฉด azure cli๋„ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๋‹ค์Œ ๋งํฌ์—์„œ ํ”Œ๋žซํผ๋Œ€๋กœ ์„ค์น˜ํ•˜์ž.
https://docs.microsoft.com/ko-kr/cli/azure/install-azure-cli

ํ™•์žฅ์„ ๊น”์•˜๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ด€๋ฆฌํƒญ์ด ์ถ”๊ฐ€๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌ๋„๊ตฌ๋กœ ์„ค์ •ํŒŒ์ผ์„ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค.

func init

๊ทธ ๋‹ค์Œ์—๋Š” ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ ํด๋”๊ฐ€ ๊ตฌ์„ฑ๋  ๊ฒƒ์ด๋‹ค.




๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ

์‹คํ–‰์€ func start ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ƒ์„ฑ๋œ ํ…œํ”Œ๋ฆฟ์„ ์‹คํ–‰ํ•ด์„œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์•Œ๋ ค์ค„ ๊ฒƒ์ด๋‹ค

์ ‘์†ํ•˜๋ฉด

์ž˜ ๋  ๊ฒƒ์ด๋‹ค.




๋ฐฐํฌํ•˜๊ธฐ

๋จผ์ € ์ปค๋งจ๋“œ๋ผ์ธ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š”๋ฒ•๋ถ€ํ„ฐ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค.
azure ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ 

์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 func azure functionapp publish ํ•จ์ˆ˜๋ช…

๋งŒ์•ฝ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด

"AzureWebJobsStorage": "UseDevelopmentStorage=true" ์„ธํŒ…๊ฐ’์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด

์ด์ œ ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ด๋‹ค.

๊ด€๋ฆฌ์šฉ VSCode ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ณด๋‹ค ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์„ ํƒํ•˜๊ณ , ๋ฐฐํฌ ํด๋ฆญํ•˜๊ณ , ํ˜„์žฌ ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

๊ทธ๊ฑฐ๋ฉด ๋์ด๋‹ค.

๋˜‘๊ฐ™์ด ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ด๋‹ค.



์ฐธ์กฐ
https://docs.microsoft.com/ko-kr/azure/azure-functions/functions-develop-vs-code?tabs=csharp