Function Compute
他のクラウドと同じように、Alibaba CloudにもFunctionのサービスがあります。今回はFunction Computeを調査してみました。
対応言語
以下の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 の設定
初心者向けチュートリアル
ハローワールド
丁寧に説明がされています。サンプルはNode.jsのサンプルになります。
スクリーンショットツール
URLを指定して、スクリーンショットをとるサンプルです。ソースコードも長いので、参考になりました。
TODOリスト
TODOアプリのサンプルです。Express使っているサンプルです。
1URIに1Functionと思っていたのですが、Expressを使って複数URIを1Functionで受け取っているので参考になりました。この手があるのか。。。
HTTP関数を試してみる
よく使いそうなので、試してみました。Webからアクセスするとファイルダウンロードになります。現在、JavaはHTTPトリガーに対応していないと記載がありますが、Javaでもいけそうですね。
テンプレート一覧
#まとめ
今回はここまでにします。テンプレートが充実しているので、実装には困らないかもしれないです。一方で、Function Computeをフローとして動かせる仕組みは欲しいかなと思いました。
まだ調査していませんが、このあたりを調べてみたいと思います。