Serverless Devs は、Alibaba Cloud Function Compute 上でサーバーレスアプリケーションのライフサイクル全体 (ローカル開発、デバッグ、デプロイメント、運用・保守を含む) を管理するオープンソースの開発者ツールです。Serverless Devs を使用すると、基盤となるリソース管理から解放され、プラグイン方式でサーバーレスサービスとフレームワークを使用し、コンポーネントとプラグインを開発できます。
Funcraft は、もはや Function Compute でメンテナンスされていません。より良いエクスペリエンスを得るために、リソースを Serverless Devs に移行してください。詳細については、「Funcraft から Serverless Devs へのリソースの移行」をご参照ください。
仕組み
Serverless Devs は、開発ワークフロー全体をカバーする2つのコンポーネントを中心に構築されています。
FC コンポーネント — サーバーレスアプリケーションリソース (サービス、関数、トリガー、カスタムドメイン名) を管理するための YAML ベースのツールです。これを使用して、アプリケーションをビルド、テストし、Function Compute にデプロイします。FC コンポーネントは Funcraft の後継です。
FC-API コンポーネント — Function Compute API 上に構築された CLI ツールです。YAML 設定ファイルを必要とせずに、アトミックなリソース操作 (作成、更新、削除、クエリ) を実行するために使用します。FC-API は fcli の後継であり、Function Compute API 関連の操作のためのインタラクティブなコマンドをサポートしています。
[FC コンポーネント] は、s.yaml を使用してアプリケーション リソースを宣言的に管理する場合に選択します。[FC-API コンポーネント] は、CI/CD パイプラインや自動化ワークフローなど、スクリプトによる API レベルの制御が必要な場合に選択します。
Serverless Devs でできること
Serverless Devs を使用して、以下を実行できます。
新しいサーバーレスプロジェクトの初期化とスキャフォールド
ローカルでの依存関係のビルドとインストール
ローカルマシンまたはクラウドで直接関数のデバッグ
Function Compute へのアプリケーションのデプロイ
クライアントからのメトリックと実行ログのクエリ
デプロイメントを自動化するための CI/CD プラットフォームとの統合
単一コマンドでのクラウドリソースのローカル環境への同期
コンソールまたは SDK を使用する際の関数の変更の自動検出と安全な更新 (セキュアリリース)
Serverless Devs をプロジェクトのライフサイクル全体に統合することで、運用・保守の効率を90%向上させることができます。詳細については、「Serverless Devs」をご参照ください。
サポートされているランタイム
Serverless Devs は、以下の Function Compute ランタイムをサポートしています。
Node.js 8、Node.js 10、Node.js 12、および Node.js 14
Python 2.7、Python 3、および Python 3.9
Java 8 および Java 11
PHP 7.2
.NET Core 2.1
Custom Runtime
Custom Container
FC コンポーネント
FC コンポーネントは、Alibaba Cloud サーバーレスアプリケーションのライフサイクル全体をサポートします。リソース定義には s.yaml を使用し、2つの動作モードをサポートしています。
YAML モード — Function Compute の YAML 構文を使用して、s.yaml でアプリケーションリソースを定義します。このファイルは、サービス、関数、トリガー、およびカスタムドメイン名をカバーします。「YAML 構文と権限管理」をご参照ください。
CLI モード (非 YAML) — s.yaml ファイルを作成せずに、コマンドラインから直接リソースを管理します。たとえば、関数構成とコードをクラウドからローカルマシンに同期します。
s cli fc sync主要な機能
シンプルさ: 必要に応じてリソースを作成および変更します。機能は遅延ロードされるため、未使用の機能がワークフローを妨げることはありません。
効率性: デプロイ、削除、ビルド、クエリ、依存関係のインストール、デバッグをすべてローカルマシンから実行できます。
柔軟性: デフォルトのデプロイパスに加えて、Pulumi または SDK を使用してデプロイできます。
FC コンポーネントは、従来のフレームワークを Function Compute に移行したり、大規模な関数リソースを管理したりするなど、Function Compute にアプリケーションをデプロイするシナリオ向けに設計されています。「Serverless Devs コマンド」で完全なコマンドリファレンスと権限要件をご参照ください。
FC-API コンポーネント
FC-API コンポーネントは、Function Compute API 上に直接構築された CLI ツールです。s.yaml ファイルを必要とせずに、Function Compute リソースへのアトミックなコマンドレベルのアクセスを提供します。FC-API は fcli の後継です。
FC-API を使用するタイミング
| ~したい場合... | FC-API を使用して: |
|---|---|
| CI/CD パイプラインでデプロイメントを自動化する | YAML ファイルを管理せずに、個々のコマンドにパラメーターを直接渡す |
| 関数コードまたは構成を更新する | ターゲットコマンドを実行する:コードの更新、構成の変更、トリガーの作成、またはエイリアスの変更 |
| プログラムでリソースを管理する | Function Compute API 経由でサービス、関数、トリガーを作成、更新、削除、およびクエリする |
利用可能なコマンド
| リソース: | コマンドリファレンス: |
|---|---|
| サービス | サービス関連コマンド |
| 関数 | 関数関連コマンド |
| トリガー | トリガー関連コマンド |
| バージョン | バージョン関連コマンド |
| エイリアス | エイリアス関連コマンド |
| カスタムドメイン名 | カスタムドメイン名関連コマンド |
| プロビジョニング済み構成 | プロビジョニング済み構成関連コマンド |
| 非同期呼び出し | 非同期呼び出し関連コマンド |
権限要件については、「FC コンポーネントの API コマンド」をご参照ください。