edit-icon download-icon

関数のCRUD操作

最終更新日: May 31, 2019

関数はサービスに紐付いています。1 つのサービスに複数の関数を紐付けることができ、ログおよびロール情報を共有します。ただし、関数は互いに独立しています。Function Compute の関数の詳細については、「関数の作成」 をご参照ください。

内容

本トピックでは、コンソール またはコマンドラインツール fcli を使用して、関数を作成、更新、照会、および削除する方法について説明します。

コンソールで関数を管理

関数の作成

コンソールを使用して関数を作成する方法は次のとおりです。

  1. コンソール にログインします。

  2. サービスを選択します。

  3. サービスの関数を作成します。

  4. テンプレートを選択します。Function Compute には、迅速にアプリケーションを構築できるよう、さまざまな関数テンプレートが用意されています。詳細は、「テンプレートの使用」をご参照ください。特定なニーズがない場合、空の関数テンプレートを選択できます。

  5. 関数のトリガーは、関数の作成時、または、関数の作成後に作成することができます。詳細は、「トリガーの作成」を参照。

  6. サービス名、関数名、実行環境を設定します。

  7. (オプション)「環境変数」および関数のパラメーターを設定します。

  8. (オプション)関数を実行するにあたり、サービスロールに権限が不足している場合、不足している権限をロールに付与します。許可の詳細については、「RAM」をご参照ください。

  9. 設定がすべて正しく設定されていることを確認し、[作成] をクリックします。

関数の更新

関数の詳細ページの [関数プロパティ] 欄に、関数の詳細が表示されます。

![Update a function](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/73338/intl_en/1533628761642/EditFunctions.png)

関数の削除

関数を削除する前に、関数にトリガーが設定されていないことを確認します。

Delete a function

fcli で関数を管理

関数の作成

mkf:関数を作成します。

  • -b —code-bucket string:コードの OSS バケットを指定します。
  • -o —code-object string:バケット内のコードのオブジェクトキーを指定します。
  • -d —code-dir string:コードのディレクトリを指定します。
  • -f —code-file string:圧縮したコードファイルを指定します。
  • -h —handler string:関数ハンドラを「File name.Function name」形式で指定します。たとえば、ハンドラの引数に「hello_world.handler」を指定すると、スクリプトファイル「hello_world.js」内のハンドラ関数がハンドラとなります。
  • -m —memory int32:関数実行のメモリサイズを指定します。
  • -t —runtime string:関数実行に使用される言語を指定します。
  1. // コードは、サービスのディレクトリに格納されます。
  2. // コードは OSS に格納されます。コード内の「-t」は実行環境、「-h」は関数ハンドラ、「-b」はコードの OSS バケット、「-o」はバケット内のコードのオブジェクトキーの指定を示します。
  3. >>> mkf myFunction -t nodejs6 -h myFunction.handler -b ossBucketName -o objectKey
  4. // コードは、ローカルに保存されます。コード内の「-d」はコードのディレクトリ、「-m」は関数実行のメモリサイズの指定を示します。
  5. >>> mkf myFunction -t nodejs6 -h myFunction.handler -d codeDir/myFunction -m 512
  6. // コードは、ローカルの「code.zip」ファイルに保存されます。
  7. >>> mkf myFunction -h myFunction.handler -f code.zip -t nodejs6

関数の更新

upf:関数を更新します。本関数のパラメーターは、「mkf」のパラメーターと同じです。

  1. // コードはサービスのディレクトリに格納されます。
  2. // コードは OSS に格納されます。コード内の「-t」は実行環境、「-b」はコードの OSS バケット、「-o」はバケット内のコードのオブジェクトキーの指定を示します。
  3. >>> upf myFunction -t nodejs6 -h myFunction.handler -b ossBucketName -o objectKey
  4. // コードはローカルに保存されます。コード内の「-d」はコードのディレクトリ、 「-m」は関数実行のメモリサイズの指定を示します。
  5. >>> upf myFunction -t nodejs6 -h myFunction.handler -d codeDir/myFunction -m 512
  6. // コードはローカルの「code.zip」ファイルに保存されます。
  7. >>> upf myFunction -h myFunction.handler -f code.zip -t nodejs6

関数の照会

lsコマンドを実行してサービスの関数をすべて表示します。

関数の実行

invk:関数実行を開始します。

  • -e —encode:関数の戻り値を Base64 で符号化します。
  • -f —event-file string:指定されたファイルよりイベント情報を読み取ります。
  • -s —event-str string:指定された String 文字列よりイベント情報を読み取ります。
  • -o —output-file string:戻り値を書き込むファイル名を指定します。
  • -t —type string:トリガーの種類を指定します。「Sync」は同期トリガーを示し、「Async」は非同期トリガーを示します。初期値は「Sync」です。
  1. // 入力パラメーターやイベントトリガーの必要がなければ、そのまま関数を呼び出します。
  2. >>> invk myFunction
  3. // 関数の戻り値を Base64 で符号化します。
  4. >>> invk myFunction -e
  5. // 文字列より、イベント情報を読み取ります。
  6. >>> invk myFunction -s 'hello,world'
  7. // ファイルからイベント情報を読み取ります。
  8. >>> invk myFunction -f event.json
  9. // 戻り値は、「result.txt」ファイルに書き込まれます。
  10. >>> invk myFunction -o code/result.txt
  11. // トリガーのタイプは「Async」に指定します。
  12. >>> invk myFunction -t Async

関数の削除

rm:関数を削除します。関数を削除する前に、関数にトリガーが設定されていないことをご確認ください。