เจเฉฑเจ เจนเฉเจฐ เจเจฎ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเฉเจก เจจเฉเฉฐ เจเฉฑเจ เจเจฐเจจ เจ เจคเฉ เจซเฉเจเจธ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจตเจฟเจฐเจคเฉ เจนเฉ, เจเจธเฉ เจเจฐเจเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจจเฉเฉฐ เจเจ เจตเจพเจฐเฉ เจเฉฑเจ เจธเฉเจตเจพ (FaaS) เจตเจเฉเจ เจซเฉฐเจเจธเจผเจจ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเจคเจฟเจนเจพเจธเจ เจคเฉเจฐ 'เจคเฉ, AWS Lambda เจฆเฉ เจจเจพเจฒ FaaS เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจจ เจตเจพเจฒเจพ เจชเจนเจฟเจฒเจพ เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพ เจเจฎเจพเจเจผเจพเจจ เจธเฉ, เจเจธ เจฒเจ เจเจน เจจเจพเจฎ เจนเฉเฅค เจนเฉเจฐ เจเจฒเจพเจเจก เจธเฉเจตเจพ เจชเฉเจฐเจฆเจพเจคเจพ เจตเฉ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจฆเฉ เจนเจจ:
- เจเฉเจเจฒ เจคเฉเจ เจเจฒเจพเจเจก เจซเฉฐเจเจธเจผเจจ
- เจฎเจพเจเจเฉเจฐเฉเจธเจพเฉฑเจซเจ เจคเฉเจ เจ เจเจผเฉเจฐ เจซเฉฐเจเจธเจผเจจ
เจเจน เจธเจพเจฐเฉเจเจ เจเฉฐเจชเจจเฉเจเจ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ, เจเจเฉ-เจธเจเฉเจฒเจฟเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉเจเจ เจนเจจ, เจ เจคเฉ เจธเจฟเจฐเจซเจผ เจเจธ เจฒเจ เจญเฉเจเจคเจพเจจ เจเจฐเจฆเฉเจเจ เจนเจจ เจเฉ เจคเฉเจธเฉเจ เจ เจธเจฒ เจตเจฟเฉฑเจ เจตเจฐเจคเจฆเฉ เจนเฉ, เจชเจฐ เจเจน เจเจพเจนเจเจพเจ เจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจฎเจฒเจเฉเจ เจค เจเจคเจชเจพเจฆ เจตเจฟเฉฑเจ เจฒเจพเจ เจเจฐเจฆเฉ เจนเจจเฅค เจนเจพเจฒเจพเจเจเจฟ, เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจฒเจ เจฎเฉเจซเจค เจ เจคเฉ เจเจชเจจ เจธเฉเจฐเจธ เจตเจฟเจเจฒเจช เจนเจจเฅค เจเจน เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจนเฉ:
- เจชเจฒเฉเจเจซเจพเจฐเจฎ
เจ เจชเจพเจเฉ เจเจชเจจเจตเจฟเจธเจ , IBM เจฆเฉเจเจฐเจพ เจเฉฑเจ เจเจจเจเจฟเจเจฌเฉเจเจฐ เจตเจฟเฉฑเจ เจตเจฟเจเจธเจค, เจฌเจธเฉฐเจค เจเจฒเจพเจเจก เจซเฉฐเจเจธเจผเจจ , เจเฉฑเจ เจเจพเจซเจผเฉ เจ เจฎเฉเจฐ เจฌเจธเฉฐเจค เจซเจฐเฉเจฎเจตเจฐเจ เจเจเฉเจธเจฟเจธเจเจฎ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ, เจเจฟเจธเจจเฉเฉฐ AWS Lambda, Azure เจซเฉฐเจเจธเจผเจจ เจ เจคเฉ OpenWhisk เจฒเจ เจเฉฑเจ เจจเจเจพเจฌ เจตเจเฉเจ เจตเฉ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ,เจชเฉเจฐเฉเจเฉเจเจ Fn , เจเจฐเฉเจเจฒ เจฆเฉเจเจฐเจพ เจธเจฎเจฐเจฅเจฟเจคเฅค
เจเจน เจธเจพเจฐเฉ เจฌเฉฑเจฆเจฒเจพเจ เจคเฉเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเฉเจคเฉฐเจคเจฐ เจนเจจ, เจฏเจพเจจเฉ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจเจฒเจพเจเจก เจตเจฟเฉฑเจ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเจพ เจเจชเจฃเจพ, เจเจจเจคเจ เจเจพเจ เจจเจฟเฉฑเจเฉ, เจ เจคเฉ เจฌเฉเจธเจผเฉฑเจ Exoscale เจตเจฟเฉฑเจ เจตเฉ เจธเจผเจพเจฎเจฒ เจนเฉเฅค
Fn เจชเฉเจฐเฉเจเฉเจเจ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ
Fn เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจกเฉเจเจฐ 'เจคเฉ เจ เจงเจพเจฐเจค เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจฆเฉ เจฎเฉเฉฑเจ เจญเจพเจ เจนเจจ:
- CLI เจชเฉเจฐเฉเจเจฐเจพเจฎ Fn เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจธเจพเจฐเฉ เจชเจนเจฟเจฒเฉเจเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจ เจคเฉ Fn เจธเจฐเจตเจฐ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจเจฐเจฆเจพ เจนเฉ,
- Fn เจธเจฐเจตเจฐ เจเจชเจฃเฉ เจเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจกเฉเจเจฐ เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ เจชเฉเจ เจเฉเจคเฉ เจเฉฑเจ เจจเจฟเจฏเจฎเจค เจเจชเจฒเฉเจเฉเจธเจผเจจ เจนเฉเฅค
Fn เจตเจฟเฉฑเจ เจคเฉเจจเจพเจค เจซเฉฐเจเจธเจผเจจเจพเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจเฉฐเจเฉเจจเจฐเจพเจ เจตเจฟเฉฑเจ เจตเฉ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพเจตเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ... Clojure!
เจซเฉฐเจเจธเจผเจจ เจเจฐเจเฉเจฎเฉเจเจเจธ เจธเจเฉเจเจกเจฐเจก เจเจจเจชเฉเจ (STDIN) เจจเฉเฉฐ เจชเจพเจธ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจจเจคเฉเจเฉ เจธเจเฉเจเจกเจฐเจก เจเจเจเจชเฉเฉฑเจ (STDOUT) เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเฉเจเจฐ เจเจฐเจเฉเจฎเฉเจเจ เจเจพเจ เจตเจพเจชเจธเฉ เจฎเฉเฉฑเจฒ เจธเจงเจพเจฐเจจ เจฎเฉเฉฑเจฒ เจจเจนเฉเจ เจนเจจ (เจเจฟเจตเฉเจ เจเจฟ เจเฉฑเจ JSON เจตเจธเจคเฉ), เจคเจพเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจกเจฟเจตเฉเจฒเจชเจฎเฉเจเจ เจเจฟเฉฑเจ (FDK) เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ Fn เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเฉ เจเจ เจเจฌเจธเจเจฐเฉเจเจธเจผเจจ เจฒเฉเจ เจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจธเจนเฉเจฒเจค เจฒเจ, เจตเฉฑเจ-เจตเฉฑเจ เจญเจพเจธเจผเจพเจตเจพเจ เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ (เจเฉ, เจเจพเจตเจพ, เจชเจพเจเจฅเจจ, เจเจฆเจฟ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ) เจฆเฉ เจเฉฑเจ เจตเจฟเจเจชเจ เจธเฉเจเฉ เจตเจฟเฉฑเจ FaaS เจฆเฉ เจคเฉเจจเจพเจคเฉ เจฆเฉ เจธเจนเฉเจฒเจค เจฒเจ เจเฉเจเจชเจฒเฉเจเจพเจ เจฆเฉ เจฌเจฟเจฒเจ-เจเจจ เจธเฉเฉฑเจเจพเจ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจเจธ เจเจฟเฉฑเจคเจฐ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจเฉ เจเฉฑเจ FaaS เจฌเจฃเจพเจเจฃเจพ เจเจธเจพเจจ เจนเฉ:
- Fn CLI เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจเจพ: Fn เจฒเจ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจซเจพเจเจฒ เจเฉเจฃเฉ เจเจ เจเฉเจเจชเจฒเฉเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจฌเจฃเจพเจ เจเจ เจนเฉเฅค
- เจ เจธเฉเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจฐเฉเจฒ เจเจเจ เจเจฐเจฆเฉ เจนเจพเจ, เจฆเฉเจฌเจพเจฐเจพ CLI Fn เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ: เจเฉฐเจเฉเจจเจฐ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจเฉฑเจ เจเจพเจธ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจธ เจเจฟเฉฑเจคเจฐ เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจ เจคเฉ เจชเจฒเฉเจธเจฎเฉเจเจ เจฌเจพเจฐเฉ เจธเฉเจเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
Fn เจจเฉเฉฐ เจซเฉฐเจเจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเจพ เจธเจฟเจงเจพเจเจค
เจธเจฅเจพเจจเจ เจธเจฅเจพเจชเจจเจพ เจ เจคเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจเจพเจเจ
เจเจ เจฒเฉเจเจฒ เจฎเจธเจผเฉเจจ เจเฉฑเจคเฉ Fn เจจเฉเฉฐ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉเจเฅค เจชเจนเจฟเจฒเจพเจ, เจกเฉเจเจฐ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ Fn เจฆเฉเจเจฐเจพ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉ. เจเจน เจฎเฉฐเจจ เจเฉ เจเจฟ เจ เจธเฉเจ เจกเฉเจฌเฉเจ เจจ/เจเจฌเฉฐเจเฉ 'เจคเฉ เจนเจพเจ:
$ sudo apt-get update
$ sudo apt-get install docker.io
เจเจพเจ เจเจชเจฃเฉ เจธเจฟเจธเจเจฎ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ/เจกเฉเจเจฐ เจฌเจฟเจฒเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเฅค เจซเจฟเจฐ เจคเฉเจธเฉเจ เจธเจฟเฉฑเจงเฉ Fn CLI เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจฒเจ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, curl เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ:
$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
เจเฉเจเจฐ เจคเฉเจธเฉเจ Homebrew เจจเจพเจฒ OSX 'เจคเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจฆเฉเจเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเจพ เจธเจเจฆเฉ เจนเฉ:
$ brew install fn
==> Downloading https://homebrew.bintray.com/bottles/fn-0.5.8.high_sierra.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/b1/b1767fb00e2e69fd9da73427d0926b1d1d0003622f7ddc0dd3a899b2894781ff?__gda__=exp=1538038849~hmac=c702c9335e7785fcbacad1f29afa61244d02f2eebb
######################################################################## 100.0%
==> Pouring fn-0.5.8.high_sierra.bottle.tar.gz
/usr/local/Cellar/fn/0.5.8: 5 files, 16.7MB
เจ เจธเฉเจ เจนเฉเจฃ CLI เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจชเจฃเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจคเฉเจจเจพเจค เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจนเจพเจเฅค เจธเจฐเจฒเจคเจพ เจฒเจ, เจ เจธเฉเจ เจเฉฑเจ เจฌเจฟเจฒเจ-เจเจจ เจฒเจพเจเจ เจตเจพเจคเจพเจตเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ, เจเจฟเจตเฉเจ เจเจฟ เจจเฉเจก:
$ fn init --runtime node --trigger http hellonode
Creating function at: /hellonode
Function boilerplate generated.
func.yaml created.
เจเฉฑเจ เจจเจตเฉเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจพเจ เจเจพเจตเฉเจเฉ hellonode
เจเฉเจ เจฌเฉเจจเจฟเจเจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจจเจพเจฒ เจธเจพเจกเฉ Fn เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจนเฉเจฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฒเจเฅค เจจเจตเฉเจ เจฌเจฃเจพเจ เจเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเฉ เจ
เฉฐเจฆเจฐ, เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจเฉเจฃเฉ เจนเฉเจ เจญเจพเจธเจผเจพ เจเจพเจ เจฐเจจเจเจพเจเจฎ เจฆเฉ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจฆเฉ เจนเฉเจ เจเจชเจฃเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ:
# ะะฐัะฐะปะพะณ ั node ะฒัะณะปัะดะธั ัะฐะบ:
hellonode
โโโ func.js
โโโ func.yaml
โโโ package.json
# ะกะฒะตะถะตัััะฐะฝะพะฒะปะตะฝะฝะพะต ะพะบััะถะตะฝะธะต Java11 ัะฐะบะพะต:
hellojava11
โโโ func.yaml
โโโ pom.xml
โโโ src
โโโ main
โ โโโ java
โ โโโ com
โ โโโ example
โ โโโ fn
โ โโโ HelloFunction.java
โโโ test
โโโ java
โโโ com
โโโ example
โโโ fn
โโโ HelloFunctionTest.java
Fn เจธเจผเฉเจฐเฉเจเจคเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจคเจฐ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ, เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ func.yaml
, Fn เจฒเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฐเฉฑเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจคเฉเจนเจพเจกเฉ เจฆเฉเจเจฐเจพ เจเฉเจฃเฉ เจเจ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเฉเจก เจฒเจ เจเฉเจฎเจชเจฒเฉเจ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจจเฉเจก เจฐเจจเจเจพเจเจฎ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ:
$ cat hellonode/func.js
const fdk=require('@fnproject/fdk');
fdk.handle(function(input){
let name = 'World';
if (input.name) {
name = input.name;
}
return {'message': 'Hello ' + name}
})
เจนเฉเจฃ เจ เจธเฉเจ เจเจน เจฆเฉเจเจฃ เจฒเจ เจเจชเจฃเฉ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเจพเจเจ เจเจฐเจพเจเจเฉ เจเจฟ เจธเจญ เจเฉเจ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ, เจ เจธเฉเจ Fn เจธเจฐเจตเจฐ เจธเจผเฉเจฐเฉ เจเจฐเจพเจเจเฉเฅค เจเจฟเจตเฉเจ เจเจฟ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฆเฉฑเจธเจฟเจ เจเจฟเจ เจนเฉ, Fn เจธเจฐเจตเจฐ เจเฉฑเจ เจกเฉเจเจฐ เจเฉฐเจเฉเจจเจฐ เจนเฉ, เจเจธเจฒเจ, เจธเจเจพเจฐเจเจ เจช เจคเฉเจ เจฌเจพเจ เจฆ, เจเจน เจเจพ เจเฉ เจกเฉเจเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจคเฉเจ เจเจฟเฉฑเจคเจฐ เจฒเจตเฉเจเจพเฅค
$ fn start -d # ะทะฐะฟััะบะฐะตะผ ะปะพะบะฐะปัะฝัะน ัะตัะฒะตั ะฒ ัะพะฝะต
Unable to find image 'fnproject/fnserver:latest' locally
latest: Pulling from fnproject/fnserver
ff3a5c916c92: Pull complete
1a649ea86bca: Pull complete
ce35f4d5f86a: Pull complete
...
Status: Downloaded newer image for fnproject/fnserver:latest
668ce9ac0ed8d7cd59da49228bda62464e01bff2c0c60079542d24ac6070f8e5
เจธเจพเจกเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ, เจเจน "เจฐเฉเจฒ เจเจเจ" เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจธเจฆเฉ เจฒเฉเฉ เจนเฉ ะธะผั ะฟัะธะปะพะถะตะฝะธั
: Fn เจตเจฟเฉฑเจ, เจธเจพเจฐเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจซเฉฐเจเจธเจผเจจเจพเจ เจฒเจ เจจเฉเจฎเจธเจชเฉเจธ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
Fn CLI เจซเจพเจเจฒ เจฆเฉ เจเฉเจ เจเจฐเฉเจเจพ func.yaml
เจฎเฉเจเฉเจฆเจพ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจตเจฐเจคเฉ เจเจพเจตเฉเจเฉเฅค เจเจธ เจฒเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ 'เจคเฉ เจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ hellonode
.
$ cd hellonode
$ fn deploy --app fnexo --local # ะฒัะบะฐััะฒะฐะตะผ ััะฝะบัะธั ะปะพะบะฐะปัะฝะพ, ะธะผั ะฟัะธะปะพะถะตะฝะธั - fnexo.
# ะฟะฐัะฐะผะตัั local ะฝะต ะทะฐะปะธะฒะฐะตั ะพะฑัะฐะท ะฒ ัะดะฐะปะตะฝะฝัะน ัะตะตััั,
# ะทะฐะฟััะบะฐั ะตะณะพ ะฝะฐะฟััะผัั
Deploying hellonode to app: fnexo
Bumped to version 0.0.2
Building image nfrankel/hellonode:0.0.3 .
Updating function hellonode using image nfrankel/hellonode:0.0.3...
Successfully created app: fnexo
Successfully created function: hellonode with nfrankel/hellonode:0.0.3
Successfully created trigger: hellonode-trigger
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจเจฎเจพเจเจก เจเจเจเจชเฉเฉฑเจ เจคเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจเฉฑเจ เจจเจตเจพเจ เจกเฉเจเจฐ เจเฉฐเจเฉเจจเจฐ เจเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจซเฉฐเจเจธเจผเจจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจซเฉฐเจเจธเจผเจจ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจนเฉ, เจ เจคเฉ เจธเจพเจกเฉ เจเฉเจฒ เจเจธเจจเฉเฉฐ เจเจฐเจจ เจฆเฉ เจฆเฉ เจคเจฐเฉเจเฉ เจนเจจ:
- Fn เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ
invoke
- เจฐเจพเจนเฉเจ เจธเจฟเฉฑเจงเจพ เจเจพเจฒ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
http
เจเฉเจฃเฉเจคเฉ invoke
Fn เจฆเฉเจเจฐเจพ เจเจน เจธเจฟเจฐเจซเจผ เจเฉเจธเจเจพเจ เจฒเจ HTTP เจฆเฉเจเจฐเจพ เจเฉฐเจฎ เจฆเฉ เจจเจเจฒ เจเจฐเจฆเจพ เจนเฉ, เจเฉ เจเจฟ เจคเฉเจเจผ เจเจพเจเจ เจฒเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉ:
$ fn invoke fnexo hellonode # ะฒัะทัะฒะฐะตะผ ััะฝะบัะธั hellonode ะฟัะธะปะพะถะตะฝะธั fnexo
{"message":"Hello World"}
เจเจฟเจธเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจธเจฟเฉฑเจงเจพ เจเจพเจฒ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจฐเจพ URL เจเจพเจฃเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
$ curl http://localhost:8080/t/fnexo/hellonode-trigger
{"message":"Hello World"}
Fn เจธเจฐเจตเจฐ เจชเฉเจฐเจ 8080 'เจคเฉ เจเจชเจฃเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจเจ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจซเฉฐเจเจธเจผเจจ URL เจชเฉเจเจฐเจจ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจเจพเจชเจฆเจพ เจนเฉ t/app/function
, เจชเจฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจจเจนเฉเจเฅค HTTP เจฆเฉเจเจฐเจพ, เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจจเจนเฉเจ เจฌเฉเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจชเจฐ เจเฉฑเจ เจ
เจเฉเจคเฉ เจเจฐเจฟเฉฑเจเจฐ เจฆเฉเจเจฐเจพ, เจเฉ เจเจธเจฆเฉ เจจเจพเจฎ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ, เจซเฉฐเจเจธเจผเจจ เจเจพเจฒ เจจเฉเฉฐ "เจธเจผเฉเจฐเฉ" เจเจฐเจฆเจพ เจนเฉเฅค เจตเจฟเฉฑเจ เจเจฐเจฟเฉฑเจเจฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเจจ `func.yml
เจชเฉเจฐเฉเจเฉเจเจ:
schema_version: 20180708
name: hellonode
version: 0.0.3
runtime: node
entrypoint: node func.js
format: json
triggers:
- name: hellonode-trigger
type: http
source: /hellonode-trigger # URL ััะธะณะณะตัะฐ
เจ เจธเฉเจ เจซเฉฐเจเจธเจผเจจ เจจเจพเจฎ เจจเจพเจฒ เจฎเฉเจฒ เจเจฐเจจ เจฒเจ เจเจฐเจฟเฉฑเจเจฐ เจจเจพเจฎ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเจพเจ, เจเจน เจธเจญ เจเฉเจ เจธเฉเจเจพ เจฌเจฃเจพ เจฆเฉเจตเฉเจเจพ:
triggers:
- name: hellonode-trigger
type: http
source: /hellonode # ัะพะฒะฟะฐะดะฐะตั ั ะธะผะตะฝะตะผ ััะฝะบัะธะธ
เจซเจฟเจฐ เจ เจธเฉเจ เจซเฉฐเจเจธเจผเจจ เจกเจฟเจฒเฉเจตเจฐเฉ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจจเจตเฉเจ เจเจฐเจฟเฉฑเจเจฐ เจคเฉเจ เจเจพเจฒ เจเจฐเจฆเฉ เจนเจพเจ:
$ fn deploy --app fnexo hellonode --local
$ curl http://localhost:8080/t/fnexo/hellonode
{"message":"Hello World"}
เจธเจญ เจเฉเจ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ! เจเจน เจชเฉเจฐเฉ เจชเฉเจฎเจพเจจเฉ เจฆเฉ เจชเฉเจฐเจฏเฉเจเจพเจ 'เจคเฉ เจเจพเจฃ เจ เจคเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจธเจพเจกเฉ FaaS เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉ!
เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ 'เจคเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจเจฒเฉ เจเจเจธเฉเจธเจเฉเจฒ CLI เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉฑเจ เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจ เจจเฉเฉฐ เจเจฒเจฆเฉ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเจเฅค เจเฉเจเจฐ เจคเฉเจธเฉเจ เจ
เจเฉ เจคเฉฑเจ เจเจธเจจเฉเฉฐ เจธเฉเจ เจ
เจช เจจเจนเฉเจ เจเฉเจคเจพ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉ
$ exo firewall create fn-securitygroup
$ exo firewall add fn-securitygroup ssh --my-ip
$ exo firewall add fn-securitygroup -p tcp -P 8080-8080 -c 0.0.0.0/0
$ exo vm create fn-server -s fn-securitygroup
เจซเจฟเจฐ เจคเฉเจธเฉเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจ เจตเจฟเฉฑเจ ssh เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจฐเจฟเจฎเฉเจ Fn เจธเจฐเจตเจฐ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ:
$ exo ssh fn-server
The authenticity of host '185.19.30.175 (185.19.30.175)' can't be established.
ECDSA key fingerprint is SHA256:uaCKRYeX4cvim+Gr8StdPvIQ7eQgPuOKdnj5WI3gI9Q.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '185.19.30.175' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)
เจซเจฟเจฐ เจกเฉเจเจฐ เจ เจคเฉ Fn เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ เจเจฟเจตเฉเจ เจเจฟ เจฒเฉเจเจฒ เจฎเจธเจผเฉเจจ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจพเจฒเฉ เจเจฐเฉ:
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo systemctl start docker
$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
$ sudo fn start
...
______
/ ____/___
/ /_ / __
/ __/ / / / /
/_/ /_/ /_/
v0.3.643
Fn เจซเฉฐเจเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจนเฉ! เจเฉฑเจ เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจจเจฟเจฏเจค เจเฉเจฐเจพเจเจธเจซเจฐ เจฒเจ, เจ
เจธเฉเจ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ deploy
เจซเจฒเฉเจ เจจเฉเฉฐ เจเฉฑเจก เจเฉ เจธเจฅเจพเจจเจ เจเฉฐเจชเจฟเจเจเจฐ เจคเฉเจ --local
.
เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, Fn เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ Fn เจธเจฐเจตเจฐ เจ
เจคเฉ เจกเฉเจเจฐ เจฐเจเจฟเจธเจเจฐเฉ เจฆเจพ เจธเจฅเจพเจจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจตเจฟเจเจฒเจช เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจฆเฉเจเจฐเจพ เจธเฉเฉฑเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ FN_API_URL
ะธ FN_REGISTRY
เจเฉเจฐเจฎเจตเจพเจฐ, เจชเจฐ เจคเฉเจจเจพเจคเฉ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจฐเจเจจเจพ เจ
เจคเฉ เจชเฉเจฐเจฌเฉฐเจงเจจ เจจเฉเฉฐ เจเจธเจพเจจเฉ เจจเจพเจฒ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจงเฉเจฐเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจคเจฐเฉเจเจพ เจตเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
Fn เจธเจผเจฌเจฆเจพเจ เจตเจฟเฉฑเจ, เจคเฉเจจเจพเจคเฉ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ context
. เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจชเฉเจฐเจธเฉฐเจ เจฌเจฃเจพเจเจเฉ:
$ fn create context exoscale --provider default --api-url http://185.19.30.175:8080 --registry nfrankel
เจคเฉเจธเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจเจชเจฒเจฌเจง เจธเฉฐเจฆเจฐเจญเจพเจ เจจเฉเฉฐ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ:
$ fn list contexts
CURRENT NAME PROVIDER API URL REGISTRY
default default http://localhost:8080/
exoscale default http://185.19.30.175:8080 nfrankel
เจ เจคเฉ เจเจธ เจชเฉเจฐเจธเฉฐเจ 'เจคเฉ เจธเจตเจฟเจ เจเจฐเฉ เจเฉ เจนเฉเจฃเฉ เจเจธ เจคเจฐเฉเจนเจพเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจธเฉ:
$ fn use context exoscale
Now using context: exoscale
เจเฉฑเจฅเฉเจ, Fn เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจกเจฟเจฒเฉเจตเจฐเฉ เจเฉเจฃเฉ เจนเฉเจ DockerHub เจเจพเจคเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเฉเจเฉ (เจฎเฉเจฐเฉ เจเฉเจธ เจตเจฟเฉฑเจ - nfrankel
), เจ
เจคเฉ เจซเจฟเจฐ เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจธเฉเจเจฟเจค เจเจฐเฉ (เจเจธ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ - http://185.19.30.175:8080
) เจคเฉเจนเจพเจกเฉ เจซเฉฐเจเจธเจผเจจ เจตเจพเจฒเฉ เจจเจตเฉเจจเจคเจฎ เจเจฟเฉฑเจคเจฐ เจฆเฉ เจธเจฅเจพเจจ เจ
เจคเฉ เจธเฉฐเจธเจเจฐเจฃ เจฌเจพเจฐเฉเฅค
$ fn deploy --app fnexo . # ะฒัะฟะพะปะฝัะตััั ะฝะฐ ะปะพะบะฐะปัะฝะพะน ะผะฐัะธะฝะต ะธะท ะบะฐัะฐะปะพะณะฐ hellonode
Deploying function at: /.
Deploying hellonode to app: fnexo
Bumped to version 0.0.5
Building image nfrankel/hellonode:0.0.5 .
เจ เฉฐเจค เจตเจฟเฉฑเจ:
$ curl http://185.19.30.175:8080/t/fnexo/hellonode
{"message":"Hello World"}
Fn- เจ
เจงเจพเจฐเจฟเจค เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฒเจพเจเจซเจธเจพเจเจเจฒ
เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจธเจฎเจฐเฉฑเจฅเจพ 'เจคเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจฆเฉ เจซเจพเจเจฆเฉ
เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจธเฉเจคเฉฐเจคเจฐ เจญเจพเจเจพเจ เจจเฉเฉฐ เจคเฉเจเจผเฉ เจจเจพเจฒ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉฑเจฒ เจนเฉ เจเฉ เจตเจงเฉเจฐเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจเจพเจ เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ เจจเจพเจฒ เจเฉฐเจเจฐเฉเจเจ เจเจฐเจฆเฉ เจนเจจเฅค
เจเจน เจ เจเจธเจฐ เจเฉเจฃเฉ เจนเฉเจ เจตเจฟเจเจฐเฉเจคเจพ เจจเฉเฉฐ เจฒเจพเจ เจเจจ เจเจฐเจจ เจฆเฉ เจฒเฉเจเจตเฉเจ เจฒเจพเจเจค เจฆเฉ เจเจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเฉ เจเจฟ, เจเจพเจธ เจตเจฐเจคเฉเจ เจฆเฉ เจเฉเจธ เจ เจคเฉ เจตเจพเจฒเฉเจ เจฎ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ, เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฒเจพเจเจคเจพเจ เจ เจคเฉ เจเฉฑเจ เจฒเจเจเจคเจพ เจฆเจพ เจเจพเจฐเจจ เจฌเจฃ เจธเจเจฆเจพ เจนเฉเฅค
เจฎเจฒเจเฉ-เจเจฒเจพเจเจก เจ เจคเฉ เจนเจพเจเจฌเฉเจฐเจฟเจก เจเจฒเจพเจเจก เจเจฐเจเฉเจเฉเจเจเจฐ เจตเฉ เจเจธ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ เจชเฉเฉเจค เจนเจจ, เจเจฟเจเจเจเจฟ เจคเฉเจธเฉเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจ เจเจฟเจนเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจชเจพ เจธเจเจฆเฉ เจนเฉ เจเจฟเฉฑเจฅเฉ เจคเฉเจธเฉเจ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเจเฉ, เจชเจฐ เจเจพเจฐเจชเฉเจฐเฉเจ เจจเฉเจคเฉเจเจ เจเจพเจฐเจจ เจเจน เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉ เจธเจเจฆเจพเฅค
Fn เจตเจฐเจคเจฃ เจฒเจ เจเจพเจซเจผเฉ เจเจธเจพเจจ เจนเฉ เจ เจคเฉ เจฅเฉเฉเฉเจนเฉ เจเจฟเจนเฉ เจเจตเจฐเจนเฉเฉฑเจก เจฆเฉ เจจเจพเจฒ เจฒเจเจญเจ เจเฉฑเจเฉ เจเจฟเจนเจพ FaaS เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจเจฟเจธเฉ เจตเฉ เจตเจฟเจเจฐเฉเจคเจพ เจฒเจพเจ-เจเจจ เจจเฉเฉฐ เจเจคเจฎ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเจพเจ เจคเฉเจนเจพเจกเฉ เจชเจธเฉฐเจฆ เจฆเฉ เจเจฟเจธเฉ เจตเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจเจฒเจพเจเจก เจนเฉฑเจฒ เจชเฉเจฐเจฆเจพเจคเจพ เจตเจฟเฉฑเจ เจธเจฅเจพเจชเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจตเจฟเฉฑเจ เจตเฉ เจเจเจผเจพเจฆเฉ เจนเฉเฅค
เจเจน เจฒเฉเจ เจธเจฟเจฐเจซเจผ Fn เจฆเฉเจเจ เจฎเฉเจฒ เจเฉฑเจฒเจพเจ เจจเฉเฉฐ เจเจตเจฐ เจเจฐเจฆเจพ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจกเจพ เจเจชเจฃเจพ เจฐเจจเจเจพเจเจฎ เจฌเจฃเจพเจเจฃเจพ เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ เจนเฉ, เจ เจคเฉ เจธเจฎเฉเฉฑเจเฉ เจเจฐเจเฉเจเฉเจเจเจฐ เจจเฉเฉฐ เจเฉฑเจ Fn เจฒเฉเจก เจฌเฉเจฒเฉเจเจธเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ, เจเจพเจ เจธเฉเจฐเฉฑเจเจฟเจ เจฒเจ เจเฉฑเจ เจชเฉเจฐเฉเจเจธเฉ เจฆเฉ เจชเจฟเฉฑเจเฉ Fn เจฐเฉฑเจ เจเฉ เจตเจงเฉเจฐเฉ เจตเจฟเจเจชเจ เจคเฉเจฐ 'เจคเฉ เจคเฉเจจเจพเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจธเจฐเฉเจค: www.habr.com