Function Compute は関数を管理および実行します。Function Compute のサービス内では、サービス認可やログ設定などの共通設定を共有する複数の関数を作成できます。これらの関数は互いに独立しています。Function Compute コンソールを使用して、関数の作成、関数の更新、および関数 ARN の取得ができます。
前提条件
関数の作成
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービスと関数] をクリックします。
上部のナビゲーションバーでリージョンを選択します。[サービス] ページで、目的のサービスをクリックします。
- [関数] ページで、[関数の作成] をクリックします。
[関数の作成] ページで、関数の作成方法を選択します。次の設定を構成し、[作成] をクリックします。
説明このトピックでは、組み込みランタイムの使用およびカスタムランタイムの使用の各方法を例として使用します。Function Compute が提供する環境でビジネス要件を満たせない場合は、コンテナーイメージの使用 方法を使用して関数をデプロイできます。具体的な手順については、「カスタムコンテナ関数の作成」をご参照ください。
基本設定:[関数名] や [ハンドラタイプ] などの基本的な関数情報を設定します。[ハンドラタイプ] のオプションは次のとおりです:
イベントリクエストハンドラ:タイマー、API/SDK 呼び出し、または他の Alibaba Cloud サービスからのトリガーを使用して関数の実行をトリガーします。
HTTP リクエストハンドラ:HTTP または WebSocket リクエストを処理します。Web シナリオでは、カスタムランタイムの使用 することを推奨します。
関数コード:実行環境とコード関連の設定を構成します。
設定
説明
例
ランタイム
Python、Java、PHP、または Node.js などの言語を選択します。Function Compute がサポートするランタイムについては、「Function Compute でサポートされるランタイム」をご参照ください。
Node.js 14
コードのアップロード方法
機能コードを Function Compute にアップロードするためのメソッドを選択します。
[サンプルコードの使用]:デフォルトでは、Function Compute が提供するサンプルコードを選択して、ビジネスニーズに応じて関数を作成できます。
ZIP パッケージとしてコードをアップロード:関数コードを含む ZIP ファイルを選択してアップロードします。
JAR パッケージとしてコードをアップロード:関数コードを含む JAR ファイルを選択してアップロードします。
フォルダからコードをアップロード:関数コードを含むフォルダを選択してアップロードします。
OSS からコードをアップロード:OSS の [バケット名] と [オブジェクト名] を入力します。
説明[コードのアップロード方法] で [サンプルコードを使用] を選択した場合、[ハンドラ] を変更しないでください。他のアップロード方法を選択した場合は、必要に応じて [ハンドラ] を更新してください。そうしないと、実行時に関数が失敗します。
[ランタイム] で [Java 8] または [Java 11] を選択した場合、[サンプルコードを使用]、[JAR パッケージとしてコードをアップロード]、[OSS からコードをアップロード] のみがサポートされます。他のすべてのランタイムは、[サンプルコードを使用]、[ZIP パッケージとしてコードをアップロード]、[フォルダからコードをアップロード]、[OSS からコードをアップロード] をサポートします。
サンプルコードを使用
起動コマンド
説明この設定は カスタムランタイムの使用 を選択した場合にのみ行います。
プログラムを起動するコマンドです。起動コマンドを設定しない場合は、コードのルートディレクトリに `bootstrap` という名前の bootstrap スクリプトを手動で作成する必要があります。プログラムはこのスクリプトを通じて起動します。
npm run start
リスニングポート
説明この設定は カスタムランタイムの使用 を選択した場合にのみ行います。
HTTP サーバーがリッスンするポート番号です。
9000
詳細設定:インスタンス関連の設定と関数の実行タイムアウトを構成します。
設定
説明
例
仕様プラン
ワークロードに基づいて、[vCPU] と [メモリ] サイズの適切な組み合わせを選択または入力します。課金の詳細については、「課金概要」をご参照ください。
説明vCPU 対メモリ比は 1:1 から 1:4 の範囲内である必要があります。vCPU はコア単位で、メモリは GB 単位で測定されます。
0.35 vCPU, 512 MB
一時ディスクサイズ
ワークロードに基づいて、一時ファイルストレージ用のディスクサイズを選択します。
有効な値:
512 MB: デフォルト値。無料です。Function Compute では、最大 512 MB のディスク使用率クォータが無料で提供されます。
10 GB:9.5 GB 分が課金されます。
説明一時ディスク上のすべてのディレクトリは書き込み可能です。ディスク容量はすべてのディレクトリで共有されます。
一時ディスクは関数インスタンスのライフサイクル中に存在します。インスタンスが回収されるとデータは失われます。ファイルを永続化するには、NAS または OSS をマウントします。詳細については、「NAS ファイルシステムの設定」および「OSS ファイルシステムの設定」をご参照ください。
512 MB
インスタンスの同時実行数
この関数の最大同時実行インスタンス数を設定します。詳細については、「インスタンスの同時実行数の設定」をご参照ください。
10
実行タイムアウト
[実行タイムアウト期間] を指定します。デフォルトは 60 秒で、最大 86,400 秒です。
60
ハンドラ
リクエストハンドラを設定します。これは、Function Compute ランタイムがロードして呼び出し、リクエストを処理するために使用するハンドラです。[カスタムランタイムの使用] および [コンテナイメージによる作成] を選択した場合は、この設定項目を設定する必要はありません。
説明[コードのアップロード方法] で [サンプルコードを使用] を選択した場合、[ハンドラ] を変更しないでください。他のアップロード方法を選択した場合は、必要に応じて [ハンドラ] を更新してください。そうしないと、実行時に関数が失敗します。
index.handler
タイムゾーン
関数のタイムゾーンを選択します。タイムゾーンを設定すると、Function Compute は自動的に [TZ] という名前の環境変数を追加し、その値として選択したタイムゾーンを設定します。
協定世界時 (UTC)
環境変数:関数の環境変数を設定します。詳細については、「環境変数」をご参照ください。
トリガー設定:関数を呼び出すためのトリガーを設定します。詳細については、「トリガーの管理」をご参照ください。
関数の更新
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービスと関数] をクリックします。
上部のナビゲーションバーでリージョンを選択します。[サービス] ページで、目的のサービスをクリックします。
- [関数] ページで、変更する関数を見つけ、[操作] 列の [設定] をクリックします。
[関数設定の編集] ページで、必要な設定を更新し、[保存] をクリックします。
基本情報
基本的な関数情報を設定します。現在、関数の [説明]、[仕様プラン]、[ディスクサイズ]、[インスタンスの同時実行数] を更新できます。
環境情報
実行環境やその他の主要な設定を構成します。詳細については、「関数の作成」をご参照ください。
その他の設定
設定
説明
リファレンス
環境変数
関数の環境変数を設定します。
インスタンスのライフサイクルフック
関数インスタンスのライフサイクルフックを設定します。これには、初期化関数、PreFreeze 関数、およびPreStop 関数を含む。
レイヤー
作成したレイヤー名とバージョンを選択します。レイヤーを使用すると、カスタムの依存関係、ランタイム、および関数拡張を公開およびデプロイできます。
DNS 設定
カスタム DNS を設定します。プラットフォームは、この設定に基づいて resolv.conf を生成します。
不要になった関数を削除することもできます。
関数 ARN の取得
Alibaba Cloud リソース名 (ARN) は、コード内のリソースを識別します。他の場所で参照するために、関数の ARN を取得します。
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービスと関数] をクリックします。
上部のナビゲーションバーでリージョンを選択します。[サービス] ページで、目的のサービスをクリックします。
[関数] ページで、ARN を取得したい関数の名前をクリックします。
関数の詳細ページで、[設定] タブに移動します。[基本情報] セクションで、関数 ARN を表示してコピーします。
Function Compute でサポートされているランタイム
ランタイム | 説明 | ドキュメントリンク |
Node.js 6 | Node.js 6 | |
Node.js 8 | Node.js 8 | |
Node.js 10 | Node.js 10 | |
Node.js 12 | Node.js 12 | |
Node.js 14 | Node.js 14 | |
Node.js 16 | Node.js 16 | |
Python 2.7 | Python 2.7 | |
Python 3 | Python 3.6 | |
Python 3.9 | Python 3.9 | |
Python 3.10 | Python 3.10 | |
PHP 7.2 | PHP 7.2.7 | |
Java 11 | Java 11 | |
Java 8 | Java 8 | |
.NET Core 3.1 | .NET Core 3.1 | |
Go 1.x | Go 1.8 以降 | |
Custom Runtime | カスタムランタイム (Debian 9) | |
Custom Runtime (Debian 10) | カスタムランタイム (Debian 10) | |
Custom Container | なし |
参照情報
コンソールに加えて、Function Compute は関数を管理するための以下の方法も提供しています。
実行タイムアウトエラーについては、「関数がタイムアウトしました。どうすればよいですか?」をご参照ください。
呼び出し頻度の低い関数は応答に時間がかかります。「呼び出し頻度の低い関数はなぜ応答に時間がかかるのですか?」をご参照ください。コールドスタートのレイテンシをなくすには、プロビジョニング済みインスタンスを使用します。「コールドスタートのレイテンシを回避するためにインスタンスを実行し続けるにはどうすればよいですか?」をご参照ください。
関数の課金を停止するには、関数とそのサービスを削除します。詳細については、「関数の更新」および「サービスの更新」をご参照ください。