0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Alibaba Cloud の Function Compute のサンプルを見てみる

Posted at

Function Compute

他のクラウドと同じように、Alibaba CloudにもFunctionのサービスがあります。今回はFunction Computeを調査してみました。

対応言語

以下のSDKが用意されています。

言語 アドレス
Node.js https://github.com/aliyun/fc-nodejs-sdk
Java https://github.com/aliyun/fc-java-sdk
Python https://github.com/aliyun/fc-python-sdk
Go https://github.com/aliyun/fc-go-sdk
PHP https://github.com/aliyun/fc-php-sdk
C# https://github.com/aliyun/fc-csharp-sdk

トリガーの種類

以下のトリガーが用意されています。

  • HTTP トリガー
  • OSS イベントトリガー
  • タイム トリガー
  • CDN トリガー
  • MNS トリガー
  • Table Store トリガー
  • Log Service トリガー

イベントソースサービスで作成されるトリガー

API Gateway、DataHub、IoTがあります。

Function Compute で作成されるトリガー

HTTP、OSS、Log Service、タイム、CDN イベント、MNS トピック、Table Storeがあります。

制限事項

サービスリソースの制限

制限
1 つのサービスで作成できる関数の最大数 50
1 つの関数で作成できるトリガーの最大数 10

関数実行時の環境制限

リソース
一時ディスクスペース (“/tmp” のスペース) 512 MB
ファイル記述子の数 1024
プロセス数とスレッド数 (合計) 1024
リクエストごとの最大実行時間 600s
同期関数呼び出しのリクエストペイロードサイズ 6 MB
同期関数呼び出しのレスポンスボディ 6 MB
非同期関数呼び出しのリクエストペイロードサイズ 128 KB
コードパッケージサイズ (圧縮された .zip または .jar ファイル) 50 MB
非圧縮コードサイズ 500 MB

各リージョンのアカウントごとのリソース制限

リソース
同時に実行できる関数の数 100
アップロード可能なパッケージの合計サイズ 100 GB

今後の調査内容

今後、以下の気になる点について調べてみようと思います

  • Function ComputeからRDBMSに接続する際のコネクションプールについて
    • VPCのRDSに接続する方法はドキュメントにあった
  • 初期起動の速度(Javaなどオーバーヘッドの大きい言語や、モジュールが多い場合の挙動)
  • VPC内での起動速度(初期のAWS Lambdaのようなことがないのかな?)
  • Step Functionみたいなものはないか?

チュートリアルの実行

Function Compute の設定

01.png
02.png
03.png

初心者向けチュートリアル

ハローワールド

丁寧に説明がされています。サンプルはNode.jsのサンプルになります。

04.png
05.png

スクリーンショットツール

URLを指定して、スクリーンショットをとるサンプルです。ソースコードも長いので、参考になりました。
06.png
07.png
08.png
09.png

TODOリスト

TODOアプリのサンプルです。Express使っているサンプルです。
1URIに1Functionと思っていたのですが、Expressを使って複数URIを1Functionで受け取っているので参考になりました。この手があるのか。。。
10.png
11.png
12.png
13.png
14.png

HTTP関数を試してみる

よく使いそうなので、試してみました。Webからアクセスするとファイルダウンロードになります。現在、JavaはHTTPトリガーに対応していないと記載がありますが、Javaでもいけそうですね。
15.png
16.png
17.png
18.png
19.png
20.png
21.png
22.png

テンプレート一覧

いろいろなテンプレートがありますね。
23.png

#まとめ

今回はここまでにします。テンプレートが充実しているので、実装には困らないかもしれないです。一方で、Function Computeをフローとして動かせる仕組みは欲しいかなと思いました。
まだ調査していませんが、このあたりを調べてみたいと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?