์•ˆ๋…•ํ•˜์„ธ์š”? ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” IBM Cloud์˜ Functions ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

OpenWhisk๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐํ˜• ์ปดํ“จํŒ… ์ค‘ ํ•˜๋‚˜์ธ ์„œ๋ฒ„๋ฆฌ์Šค(serverless) ์ปดํ“จํŒ…์„ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋žซํผ์œผ๋กœ Apache ์žฌ๋‹จ์˜ ์ธํ๋ฒ ์ดํŒ… ํ”„๋กœ์ ํŠธ๋กœ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์ธ ์„œ๋ฒ„ ํ”„๋กœ๋น„์ €๋‹์ด ์—†์œผ๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์ธํ”„๋ผ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ ์—†์ด ์ œ๊ณตํ•ด์•ผ ํ•  ์„œ๋น„์Šค ์ฝ”๋“œ์— ์ง‘์ค‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”์— ๋”ฐ๋ผ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” On-demand ๋ฐฉ์‹์˜ FaaS(Function as a Service)์ด๋ฏ€๋กœ ์š”์ฒญ์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ™•์žฅ๋˜๊ณ , ์š”์ฒญ์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์ž๋™์œผ๋กœ ์ค„์–ด๋“œ๋Š” ์˜คํ†  ์Šค์ผ€์ผ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์š”์ฒญ์ด ์—†๋Š” ์œ ํœด ์‹œ๊ฐ„ ๋™์•ˆ์— ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ฐ€์šฉ์„ฑ ์„œ๋น„์Šค ์œ ์ง€ ๋น„์šฉ์„ ์ค„์—ฌ์ฃผ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

IBM Functions๋Š” IBM Cloud์—์„œ OpenWhisk๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ Cloud ์„œ๋น„์Šค์™€ ์—ฐ๊ณ„ํ•˜๊ณ  ์ „๋ฐ˜์ ์ธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” IBM Functions ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  JavaScript๋ฅผ ์ด์šฉํ•œ OpenWhisk ์•ก์…˜์„ ์ž‘์„ฑํ•˜์—ฌ ์‹ค์Šตํ•ด ๋ณด๋Š” ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

IBM Cloud ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ

๊ธฐ๋ณธ์ ์œผ๋กœ IBM Cloud์—์„œ๋Š” Functions์— ๋Œ€ํ•œ Dashboard UI๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์•ก์…˜(Action)์„ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, IBM Cloud์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ, IBM Cloud ๊ณ„์ •์ด ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ https://www.bluemix.net/registration์—์„œ lite ๊ณ„์ •์„ ๋ฌด๋ฃŒ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IBM Cloud์— ๋กœ๊ทธ์ธ ํ›„ ํ™”๋ฉด ์ƒ๋‹จ IBM Cloud ๋กœ๊ณ  ์™ผ์ชฝ์— ์žˆ๋Š” ์„ธ ๊ฐœ์˜ ๋ง‰๋Œ€ ๋ชจ์–‘์˜ ๋ฉ”๋‰ด ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฉ”๋‰ด๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ทธ ์ค‘ Functions ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜์—ฌ IBM Functions ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ์˜ ์ž‘์„ฑ ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด ์•ก์…˜์„ ๋งŒ๋“ค ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

์กฐ์น˜ ์ž‘์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ์กฐ์น˜ ์ด๋ฆ„์„ hello๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ ํ›„ ์ž‘์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” Action์˜ main ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์ž๊ฐ’์„ ๋„˜๊ฒจ ๋ฐ›๋Š” ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

function main(params) {
    var message = 'Hello ' + (params.name ? params.name : 'World');
    return { message: message };
}

๊ทธ๋ฆฌ๊ณ , ์ €์žฅ ๋ฐ ํ˜ธ์ถœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Hello World๊ฐ€ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ตœ๊ทผ ๊ฒฐ๊ณผ์—์„œ ์กฐ์น˜ ์ž…๋ ฅ ๋ณ€๊ฒฝ ์ด๋ผ๋Š” ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ์ž…๋ ฅ๋˜๋Š” params ์ •๋ณด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

{
    "name":"์—ฌ๋Ÿฌ๋ถ„"
}

๊ทธ๋ฆฌ๊ณ , ๋‹ค์‹œ ํ˜ธ์ถœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ž…๋ ฅํ•œ ์ด๋ฆ„์„ ์ฒ˜๋ฆฌํ•œ ์‘๋‹ต์„ ์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenWhisk ์•ก์…˜์„ cURL๋กœ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ

์•ž์„œ ๋งŒ๋“  ์•ก์…˜์€ Dashboard์—์„œ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•œ ๊ฒƒ์ด๊ณ  ๋ณดํ†ต์€ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋œ REST Endpoint์— ๋Œ€ํ•œ URL์„ ํ˜ธ์ถœํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๊ฐœ๋ฐœ ๋ณด๊ธฐ์—์„œ ์—ด๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ณด๊ธฐ ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ™”๋ฉด ์šฐ์ธกํ•˜๋‹จ์— REST ์—”๋“œํฌ์ธํŠธ ๋ณด๊ธฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์•ก์…˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ URL ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ , ํ™”๋ฉด์„ ์ž˜ ์Šคํฌ๋กค ํ•˜์—ฌ cURL ๋ช…๋ น์„ ์œ„ํ•œ ์˜ˆ์ œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํด๋ฆฝ๋ณด๋“œ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งํฌ ์˜†์— ์ „์ฒด ๋ช…๋ น ํ‘œ์‹œ๋ฅผ ํด๋ฆญํ•˜๋ฉด REST ํ˜ธ์ถœ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

curl -d '{ "name": "CURL" }' 'https://openwhisk.ng.bluemix.net/api/v1/namespaces/dodevk_dev/actions/hello?blocking=true' -XPOST -H 'Content-Type: application/json' -H 'Authorization: Basic xxxx'

๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ, cURL์ด ์—†๋Š” ๊ฒฝ์šฐ ์•„๋ž˜ ๋งํฌ์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenWhisk ์•ก์…˜์„ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•ด๋ณด๊ธฐ

ํ˜น์‹œ ๋ˆˆ์—ฌ๊ฒจ ๋ณด์…จ์„์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ์•ž์„œ ํ˜ธ์ถœํ–ˆ๋˜ cURL์— ์ „๋‹ฌ๋œ URL Query ํŒŒ๋ผ๋ฉ”ํ„ฐ ๊ฐ’ ์ค‘ blocking=true๋ผ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์•ก์…˜์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์˜ค๊ธฐ๊นŒ์ง€ ๋Œ€๊ธฐํ•œ ๋‹ค์Œ ์‘๋‹ต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋งŒ์•ฝ, ์ด ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๊ฐ’์„ false๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ํ™œ์„ฑํ™” ID๋กœ OpenWhisk ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋œ ๊ฒฐ๊ณผ ์กฐํšŒ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ID์ž…๋‹ˆ๋‹ค. ํ™œ์„ฑํ™” ID๋Š” ์•ก์…˜์ด ์•„๋‹ˆ๋ผ ์•กํ‹ฐ๋ฒ ์ด์…˜(activation) ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•˜๋ฉฐ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

curl 'https://openwhisk.ng.bluemix.net/api/v1/namespaces/dodevk_dev/activations/{activationID}' -H 'Authorization: Basic xxxx'

CLI๋ฅผ ์ด์šฉํ•˜์—ฌ ์ ‘๊ทผํ•˜๊ธฐ

์ง€๊ธˆ๊นŒ์ง€๋Š” ์›น ๋Œ€์‹œ๋ณด๋“œ์™€ cURL์„ ์ด์šฉํ•œ ํ˜ธ์ถœ์„ ํ–ˆ๋‹ค๋ฉด ์ด์ œ ๋ช…๋ นํ–‰ ๋„๊ตฌ์ธ CLI๋ฅผ ์ด์šฉํ•ด ๋ณด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

CLI ์„ค์น˜ํ•˜๊ธฐ

๋จผ์ € ์ž์‹ ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ๋งž๋Š” CLI๋ฅผ ์•„๋ž˜ ๋งํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ์„œ ์„ค์น˜ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ ์ •์ƒ ์„ค์น˜๋˜์—ˆ๊ณ  CLI๋กœ IBM Cloud์— ๋กœ๊ทธ์ธ ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ ์ƒํƒœ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ bx wsk action invoke /whisk.system/utils/echo -p message hello --result

OpenWhisk ์•ก์…˜์„ CLI๋กœ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ

์ตœ์ข…์ ์œผ๋กœ ์ •์ƒ ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ ์ƒํƒœ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ bx wsk action invoke hello --blocking --param name CLI

OpenWhisk ์•ก์…˜์„ CLI๋กœ ๋น„๋™๊ธฐ ํ˜ธ์ถœ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ

์ตœ์ข…์ ์œผ๋กœ ์ •์ƒ ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ ์ƒํƒœ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ bx wsk action invoke hello --param name CLI

๊ทธ๋ฆฌ๊ณ , ์•ก์…˜ ํ˜ธ์ถœ๋กœ ์–ป์–ด์ง„ ํ™œ์„ฑํ™” ID๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

$ bx wsk activation invoke a4a1eead285c4820a1eead285cc820e1

์•ก์…˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด

CLI์˜ ๊ฒฝ์šฐ IBM Cloud์— ๋Œ€ํ•œ ๋กœ๊ทธ์ธ ํ›„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•ก์…˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” REST๋กœ ๋…ธ์ถœํ•œ ํ˜•ํƒœ๋กœ ์ œ๊ณต์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ํ•ด๋‹น ์•ก์…˜์„ publicํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์€ web ์•ก์…˜์ด๋‚˜ API ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ดํ›„ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ž์„œ REST ํ˜ธ์ถœ ์‹œ ์‚ฌ์šฉํ–ˆ๋˜ APIKey ์ธ์ฆ ์ •๋ณด์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์ข€ ๋” ํ™•์ธ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. IBM Cloud Functions๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์ ‘๊ทผ ์ œํ•œ์„ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ namespace๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. namespace๋Š” IBM Cloud ๊ณ„์ •์˜ ์กฐ์ง(org)๊ณผ ์˜์—ญ(space)์˜ ์ด๋ฆ„์„ ์กฐํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋ถ€์—ฌ๋˜๋ฉฐ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. APIํ‚ค๋Š” ๊ณ ์œ ํ•œ namespace์— ๋Œ€์‘ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์œผ๋กœ revoke ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์‹ ์ค‘ํ•˜๊ฒŒ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด IBM Founctions ๋Œ€์‹œ๋ณด๋“œ์˜ ๋ฉ”๋‰ด ์ฆ ์‹œ์ž‘ํ•˜๊ธฐ > API Key ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜๋ฉด API ํ‚ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

namespace์— ํ• ๋‹น๋œ APIKey์˜ ๋‚ด์šฉ์„ ๋ณด๋ฉด ์œ ์ €์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ฝœ๋ก  ๋ฌธ์ž :๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์ธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด user123:pass456 ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์ด๋ฆ„์€ user123์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” pass456์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ CLI์—์„œ๋„ ๊ทธ ์ •๋ณด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

$ bx wsk property get --auth

์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ cURL๋กœ ํ˜ธ์ถœ ์‹œ -u ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

curl -d '{ "name": "CURL" }' 'https://openwhisk.ng.bluemix.net/api/v1/namespaces/dodevk_dev/actions/hello?blocking=true' -XPOST -H 'Content-Type: application/json' -u user123:pass456

Mac์ด๋‚˜ Linux์˜ ๊ฒฝ์šฐ๋Š” awk๋ฅผ ์ด์šฉํ•œ pipe ๋ช…๋ น์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

curl -d '{ "name": "CURL" }' 'https://openwhisk.ng.bluemix.net/api/v1/namespaces/dodevk_dev/actions/hello?blocking=true' -XPOST -H 'Content-Type: application/json' -u $(bx wsk property get --auth | awk '{print $3}')

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” OpenWhisk ์•ก์…˜์„ node module๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์— ๋Œ€ํ•œ ๋Œ“๊ธ€์ด 1๊ฑด ์žˆ์Šต๋‹ˆ๋‹ค"IBM Cloud์—์„œ JavaScript OpenWhisk แ„‹แ…ขแ†จแ„‰แ…งแ†ซ แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„‹แ…ฅ แ„‡แ…ฉแ„€แ…ต"

  1. […] ์›๋ฌธ๋ณด๊ธฐ :ย IBM Cloud์—์„œ JavaScript OpenWhisk แ„‹แ…ขแ†จแ„‰แ…งแ†ซ แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„‹แ…ฅ แ„‡แ…ฉแ„€แ…ต […]

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.