きっかけ
Alibaba CloudのFunction Computeについて調べていたところ、使用出来る言語にC#が含まれていたので調べてみました。
Function Compute
公式ドキュメントには、以下の説明がありました。
他社クラウドと同様にイベント駆動型のサーバーレスなサービスです。
Alibaba Cloud Function Compute は、イベント駆動型のフルマネージドコンピューティングサービスです。Function Compute を使用すると、管理や O&M を考慮することなく、あらゆる種類のアプリケーションやサービスをすばやく構築できます。マルチメディアデータを処理する一連のバックエンドサービスを数日で完了できます。
他社サービスとの使用言語比較
2019/10/01現在、他社のイベント駆動型のサーバーレスなサービスと使用言語について比較しました。
比較したサービス
- AWS Lambda
- Azure Functions
- GCP Cloud Functions
- Alibaba Function Compute
AWS | Azure | GCP | Alibaba | |
---|---|---|---|---|
Java | 〇 | 〇 | × | 〇 |
PHP | × | × | × | 〇 |
Node.js | 〇 | 〇 | 〇 | 〇 |
C# | 〇 | 〇 | × | 〇 |
Ruby | 〇 | × | × | × |
Python | 〇 | 〇 | 〇 | 〇 |
Go | 〇 | × | 〇 | × |
PowerShell | 〇 | 〇 | × | × |
F# | × | 〇 | × | × |
TypeScript | × | 〇 | × | × |
Function Computeで使えるC#について
Function Computeは.NET Core2.1ランタイムをサポートしています。
現在の**.NET Coreは2.1がLTS**となっていて、2系は2.2まで出ています。
2019年9月下旬に.NET Core 3.0がリリースされました。
おそらく今後3.x系に移行すると思いますが、3.x系がLTSにならないとFunction Computeのランタイムもアップデートされない可能性があると予想されます。
そのため、ローカル環境での開発はバージョンに注意する必要があります。
.NET Coreの2.x系と3.x系では色々と変更が入っているので、予め3.x系にアップデートしても修正箇所が少なくて済むようなコード設計にしておくと楽だと思います。
Function ComputeでC#の関数を作成する
OSSにファイルをアップロードまたは、zipファイルをアップロードする必要があります。
Java以外のランタイムとは関数の設定画面が異なるので、手順が整理出来次第記事を追加していきます。
記事追加しました!(2019/10/03)
https://qiita.com/cube8080/items/ce27de96138b1aecad6b
(最近画面のUIが変わったので公式ドキュメントと実際の画面が異なっている場合があります。)
-
Function Compute C# SDK
https://github.com/aliyun/fc-csharp-sdk -
Function Compute C# Libraries
https://github.com/aliyun/fc-dotnet-libs