イベントトリガー関数は、Function Compute (FC) トリガー、Object Storage Service (OSS) トリガー、ApsaraMQ for RocketMQ トリガーなどのトリガーからのイベントに応答してコードを実行します。各関数は独立して実行され、ある関数の実行が他の関数に影響を与えることはありません。このドキュメントでは、FC コンソールを使用して、イベントトリガー関数の作成、編集、削除、および Aliyun リソースネーム (ARN) の取得方法について説明します。
前提条件
開始する前に、以下をご確認ください。
-
FC コンソールにアクセスできる Alibaba Cloud アカウント
-
対象のリージョンで関数を作成するための十分な権限
関数の作成
以下の手順では、組み込みランタイムとサンプルコードを使用してイベントトリガー関数を作成する方法を説明します。作成後、サンプルコードを独自のロジックに置き換えてください。
-
FC コンソールにログインします。左側メニューで、[関数管理] > [関数] を選択します。
-
トップメニューバーでリージョンを選択します。[関数] ページで、[関数の作成] をクリックします。
-
ダイアログボックスで、関数タイプとして [イベント関数] を選択し、[作成] をクリックします。
-
[関数の作成] ページで、以下の設定を行い、[作成] をクリックします。
基本設定
| パラメーター | 説明 | 例 |
|---|---|---|
| [関数名] | 同一アカウントおよびリージョン内で関数を一意に特定する識別子です。命名規則に従う必要があります。 | myFunction |
| [vCPU] | 関数に割り当てられる仮想 CPU コアの数です。vCPU とメモリの比率は 1:1 から 1:4 の範囲内である必要があります。 | 0.35 vCPU |
| [メモリ] | 関数に割り当てられるメモリです。 | 512 MB |
| [ディスク] | 関数インスタンス用の一時ディスク領域です。すべてのディレクトリは書き込み可能で、領域は共有されます。インスタンスが回収されるとデータは失われます。ファイルを永続化するには、NAS ファイルシステムまたは OSS バケットをマウントします。FC は 10 GB のディスク領域を無料で提供します。 | 10 GB |
各呼び出しの課金は、リソース仕様に使用期間を乗じて計算されます。詳細については、「課金の概要」をご参照ください。
スケーリングポリシー
| パラメーター | 説明 | 例 |
|---|---|---|
| [最小インスタンス数] | 実行状態を維持するインスタンスの最小数です。レイテンシーに敏感なワークロードの場合、インスタンスをプリウォームしてコールドスタートのレイテンシーを削減するには、1 以上に設定します。スケーリングポリシーが設定されていないか、有効なポリシーがない場合、ここで設定した値が有効な最小値となります。複数のスケーリングポリシーがアクティブな場合、FC はそれらの中で最も高い値を有効な最小値として使用します。詳細については、「インスタンスのスケーリングルール」をご参照ください。 |
1 |
コード
ランタイム環境とコードソースを設定します。
| パラメーター | 説明 | 例 |
|---|---|---|
| [ランタイム] | 関数コードを実行するための言語とバージョンです。[組み込みランタイム] を選択し、Python、Java、PHP、Node.js などの言語を選択します。代わりに Web 関数を作成するには、[カスタムランタイム] を選択します。GPU アクセラレーション関数を作成するには、[カスタムコンテナ] を選択します。利用可能なランタイムについては、「Function Compute ランタイム」をご参照ください。 | 組み込みランタイム |
| [コードアップロード方法] | 関数コードの提供方法です。オプション: [サンプルコードの使用] (Hello World スターター、後でコンソールで編集可能)、[ZIP のアップロード] (ZIP パッケージ、または Java ランタイムのみ JAR パッケージ)、[フォルダーのアップロード]、または [OSS] (バケットとオブジェクトを指定)。 | サンプルコードの使用 |
| [ハンドラー] | FC がリクエストを処理するために呼び出すエントリポイントです。[サンプルコードの使用] を選択した場合は、デフォルトのままにします。独自のコードをアップロードした場合は、ハンドラー関数に合わせてこれを更新してください。ハンドラーが正しくないと、実行エラーが発生します。 | index.handler |
| [実行タイムアウト期間] | 1 回の呼び出しの最大実行時間です。デフォルトは 60 秒、最大は 86,400 秒です。 | 60 |
権限、ネットワーク、ストレージ
| パラメーター | 説明 | 例 |
|---|---|---|
| [関数ロール] | FC が他の Alibaba Cloud サービスにアクセスするための一時的な認証情報を生成するために使用する RAM ロールです。設定の詳細については、「Function Compute に他の Alibaba Cloud サービスへのアクセス権を付与する」をご参照ください。 | mytestrole |
| [VPC へのアクセス] | 仮想プライベートクラウド (VPC) 内のリソースにアクセスできるようにします。設定の詳細については、「ネットワークの設定」をご参照ください。 | 有効 |
| [VPC] | [VPC へのアクセス] が有効な場合に必須です。既存の VPC を選択するか、新規に作成します。 | fc.auto.create.vpc.1632317**** |
| [vSwitch] | [VPC へのアクセス] が有効な場合に必須です。既存の vSwitch を選択するか、新規に作成します。 | fc.auto.create.vswitch.vpc-bp1p8248**** |
| [セキュリティグループ] | [VPC へのアクセス] が有効な場合に必須です。既存のセキュリティグループを選択するか、新規に作成します。 | fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd**** |
| [デフォルト NIC でのインターネットアクセスを許可] | 関数がデフォルトのネットワークインターフェイスコントローラー (NIC) を介してインターネットにアクセスできるかどうかを制御します。 | 有効 |
| [NAS ファイルシステムのマウント] | 複数の推論関数で使用されるモデルファイルなど、関数間でデータを永続的に共有するために NAS ファイルシステムをマウントします。自動設定では、システムは Alibaba-Fc-V3-Component-Generated という名前の汎用 NAS ファイルシステムを使用または作成します。詳細については、「NAS ファイルシステムの設定」をご参照ください。 |
有効 |
| [OSS のマウント] | ログ、ビジネスファイル、その他のデータを永続的に保存するために OSS バケットをマウントします。詳細については、「Object Storage Service (OSS) の設定」をご参照ください。 | 有効 |
静的パブリック IP アドレスを使用する場合は、[デフォルト NIC でのインターネットアクセスを許可] を無効にしてください。そうしないと、静的パブリック IP アドレスは適用されません。詳細については、「静的パブリック IP アドレスの設定」をご参照ください。
ログモニタリングとトレーシング
| パラメーター | 説明 | 例 |
|---|---|---|
| [ログモニタリング] | デバッグ、障害分析、データ分析のために、関数の実行ログを Simple Log Service に永続化します。[自動設定] は、serverless-<region_id> という名前のログプロジェクト (リージョンごとに 1 つ) を使用または作成します。[カスタム設定] では、[Log Service プロジェクト] と [Logstore] を指定できます。詳細については、「ロギング機能の設定」をご参照ください。 |
有効 |
その他の設定
| パラメーター | 説明 | 例 |
|---|---|---|
| [タイムゾーン] | 関数のタイムゾーンです。これを設定すると、選択した値で TZ 環境変数が追加されます。 |
UTC |
| [タグ] | 関数のグループ化と管理のためのタグです。各タグにはキーと値が必要です。詳細については、「関数のタグ」をご参照ください。 | key: value |
| [リソースグループ] | 関数が属するリソースグループです。詳細については、「リソースグループ」をご参照ください。 | デフォルトリソースグループ |
| [環境変数] | 関数の実行環境に注入されるキーと値のペアで、コードを変更することなく関数の動作を変更できます。詳細については、「環境変数の設定」をご参照ください。 | {"BUCKET_NAME": "MY_BUCKET", "TABLE_NAME": "MY_TABLE"} |
関数の編集
[関数詳細] ページの [コード] タブで、コンソールで直接関数コードを変更できます。また、バックアップとしてコードをエクスポートしたり、新しいコードをアップロードしたりすることもできます。
左側のパネルにコミットされていない変更が表示されている場合は、[関数のテスト] をクリックする前に [デプロイ] をクリックして変更を適用します。
コードをエクスポートまたはアップロードするには:
[関数詳細] ページで、[コード] タブをクリックします。次に、右上隅の [関数のエクスポート] をクリックし、ドロップダウンメニューから [関数コードのエクスポート] を選択します。
[関数詳細] ページで、[コード] タブをクリックします。次に、右上隅の [コードのアップロード] をクリックし、ドロップダウンメニューからアップロード方法 ([ZIP のアップロード]、[フォルダーのアップロード]、または [OSS]) を選択します。
インスタンス仕様やスケーリングなどの他の設定変更については、「関数インスタンスの仕様と弾力性の設定」をご参照ください。
関数の削除
-
FC コンソールにログインします。左側メニューで、[関数管理] > [関数] を選択します。
-
対象の関数の [操作] 列で [関数の削除] をクリックします。
-
確認ダイアログで、関数にアタッチされたリソース (トリガーや最小インスタンス数のスケーリングポリシーなど) がないことを確認し、削除を確定します。
関数の ARN の取得
Aliyun リソースネーム (ARN) は、Alibaba Cloud リソースを一意に識別し、コードや他のサービスから関数を参照できるようにします。
-
FC コンソールにログインします。左側メニューで、[関数管理] > [関数] を選択します。
-
トップメニューバーでリージョンを選択します。対象の関数をクリックします。
-
[関数詳細] ページで、右側の [ARN のコピー] をクリックします。
次のステップ
-
FC は、さまざまなシナリオに対応する 4 種類の関数 (イベントトリガー関数、Web 関数、タスク関数、GPU アクセラレーション関数) をサポートしています。適切なタイプを選択するには、「技術選定ガイド」をご参照ください。
-
API または CLI を使用して関数を管理するには、「CreateFunction API リファレンス」および「Serverless Devs の開始」をご参照ください。
-
関数が "Function time out after" というエラーでタイムアウトする場合は、「関数のタイムアウトエラーのトラブルシューティング」をご参照ください。
-
呼び出し頻度の低い関数は、コールドスタートにより応答時間が長くなることがあります。コールドスタートのレイテンシーをなくすには、[最小インスタンス数] を
1以上に設定します。背景については、「使用頻度の低い関数の呼び出しに時間がかかる理由」をご参照ください。