Classic環境で利用できます。
NAVERクラウドプラットフォームコンソールの Cloud Functions > Actionでアクションを作成できます。アクションを作成する方法は次の通りです。
- NAVERクラウドプラットフォームコンソールの Classic環境で、
> Services > Compute > Cloud Functionsメニューを順にクリックします。 - Actionメニューをクリックします。
- [Action作成] ボタンをクリックします。
- 作成するアクションの内容を設定します。
- 基本情報: 所属パッケージ、アクションタイプ、名前、説明を設定
- ソースコード: コンソールでコードを選択した言語で直接作成するか、コードファイルをアップロード
- デフォルトパラメータ: アクションに使用するデフォルトパラメータコードを作成
- オプション設定: アクションのメイン関数名、メモリ、タイムアウト、ウェブアクションを設定
- [保存] ボタンをクリックします。
基本情報
アクションを作成するために基本的に必要な情報を設定します。基本情報の各項目に関する説明は次の通りです。
- パッケージ: アクションが属するパッケージをクリックして選択。新しいパッケージを作成して含めるには、 [+作成] ボタンをクリック
- タイプ: アクションの種類をクリックして選択
- 一般アクション: デフォルトアクションタイプで1つのアクションを実行
- ウェブアクション: 1つのアクションを実行し、API Gatewayトリガーの HTTP方式と連携して HTTPリクエスト、レスポンスを処理
- シーケンスアクション: 複数のアクションを関連付けて順次実行
- シーケンスウェブアクション: 複数のウェブアクションを関連付けて順次実行
- 名前: アクション名を英字の大小文字、数字、記号( _ 、- )を組み合わせて入力。ただし、先頭の文字に記号「-」は使用できず、他のリソース(パッケージ、アクション、トリガー)名と重複不可
- 例えば、パッケージ名が
package_name、アクション名がaction_nameの場合、パッケージに属するアクション名の形式は次の通りです:package_name/action_name
- 例えば、パッケージ名が
- 説明: 作成するアクションについての説明を入力
- パッケージを選択せず所属するパッケージがないステータスでもアクションを作成できますが、パッケージを作成してアクションをパッケージに含めることをお勧めします。
- ウェブアクションの詳細な設定や使用方法は、API Gatewayトリガーをご参照ください。
- シーケンスタイプまたはシーケンスウェブアクションを設定する方法は、シーケンスアクションをご参照ください。
- アクションのタイプと名前は変更できないことにご注意ください。
ソースコード
アクションコードは、希望する言語でコンソールで直接作成するか、コードファイルをアップロードします。コードの作成時に実行時点のランタイムパラメータを設定しないと、パッケージや関連付けられたトリガー、アクションのデフォルトパラメータが使用されます。ランタイムパラメータの他にも、追加設定に対するコードを別途作成しない場合は、関連設定はデフォルト値が適用されます。作成後に変更できない値もあることに注意して作成してください。ソースコードの各項目に関する説明は次の通りです。
- ランタイム: ソースコードが実行される言語とバージョン環境をクリックして選択
各言語ごとに推奨バージョンを選択できます。他のバージョンを選択するには、othersをクリックしてご確認ください。
- タイプ: ソースコードを作成する方法をクリックして選択
- コード: コンソールで直接作成
- ファイル: 作成したソースコードファイルを**マウスでファイルをドラッグするか、ここをクリックします。**をクリックしてアップロード
- Javaコードはコンソールで直接作成できません。コンパイルして JARファイルでアップロードします。
- .netコードは、ZIP形式のファイルでのみアップロードできます。
作成のユースケース
パラメータの Paramsを取得して Paramsに Nameと Placeが存在する場合はその文字列を返し、存在しない場合は Worldと Ncloudを返すアクションのソースコードの言語別作成のユースケースです。ソースコードの作成時にご参照ください。
ZIPや JARファイルでアップロードするコードの場合、作成方法が定められています。作成ガイドを必ず参照して作成してください。
-
Node.js
function main(params) { var name = params.name || 'World'; var place = params.place || 'Ncloud'; return {payload: 'Hello, ' + name + ' in ' + place + '!'}; } -
Python 3
def main(args): name = args.get("name", "World") place = args.get("place", "Ncloud") return {"payload": "Hello, " + name + " in " + place + "!"} -
Swift 3.1.1
func main(args: [String:Any]) -> [String:Any] { let name = args["name"] ?? "World" let place = args["place"] ?? "Ncloud" return [ "payload" : "Hello, \(name) in \(place)"] } -
PHP 7
<?php function main(array $args) : array { $name = $args["name"] ?? "World"; $place = $args["place"] ?? "Ncloud"; return ["greeting" => "Hello, $name in $place!"]; } ?> -
Java 8
import com.google.gson.JsonObject; public class Hello { public static JsonObject main(JsonObject args) { String name = "World"; String place = "Ncloud"; if (args.has("name")) name = args.getAsJsonPrimitive("name").getAsString(); if (args.has("place")) place = args.getAsJsonPrimitive("place").getAsString(); JsonObject response = new JsonObject(); response.addProperty("payload", "Hello, " + name + " in " + place + "!"); return response; } }
デフォルトパラメータ
アクションを実行するたびにパラメータを転送する代わりに、アクションにデフォルトで適用可能なデフォルトパラメータを入力できます。アクションのデフォルトパラメータは、パッケージパラメータより適用の優先順位が高く、トリガーパラメータとアクションの実行時点に転送されるランタイムパラメータよりは優先順位が低いです。デフォルトパラメータの各項目に関する説明は、次の通りです。

- 入力ボックス: JSON形式で入力
JSON形式のデフォルトパラメータのサンプルコードは、次の通りです。
{
"name": "NCloud",
"place": "Cloud Function"
}
サンプルコード
function main(params) {
let name = params.name || "World";
let place = params.place || "Naver";
return {payload: "Hello, " + name + " in " + place + "!"};
}
実行結果
{"payload":"Hello, NCloud in Cloud Function!"}
オプション設定
アクションの Main関数名、メモリ、Timeoutを設定したり、別途のユーザー認証なしで呼び出し可能な URLを提供するウェブアクションを設定できます。ウェブアクションの場合は、様々な REST APIタイプのすべてのリクエスト(GET、POST、PUT、DELETEなど)をサポートします。
オプション設定の各項目に関する説明は次の通りです。
- Main関数: アクションのメイン関数やクラス名として使用する文字列を入力
- アクションメモリ: 希望するメモリ容量をクリックして選択
- アクション Timeout: アクションの実行可能な最大時間を ms単位で入力。入力した時間の超過時は、実行結果失敗で終了
- ウェブアクション関連設定
- HTTPソース使用: HTTPソースをそのままウェブアクションに渡し、ウェブアクションでの解釈・処理有無をクリックして選択(True: HTTPソース使用、False: JSONオブジェクト使用)
- ヘッダオプション設定: コード内でヘッダの変更可否をクリックして選択(True: 変更可能、False: CORSヘッダをレスポンスヘッダに自動追加)
シーケンスアクションのシナリオ設定
選択したアクションが順次実行されるようにシーケンスアクションのシナリオを設定します。シナリオ設定前に知っておくべき注意事項は、次の通りです。
- シーケンスアクションには、一般アクション、ウェブアクションの他にシーケンスアクションも追加できます。
- シーケンスウェブアクションには、ウェブアクションまたはシーケンスウェブアクションのみを追加することをお勧めします。
- ユーザーのアクションパラメータは、最初のアクションでのみ渡されます。後続アクションでもユーザーアクションパラメータ値を使用する必要がある場合は、先行アクションでその値を結果に明示的に追加してください。
- シーケンスアクションに登録された各アクションは、独自のデフォルトパラメータ値を使用することができます。デフォルトパラメータに先行アクションの結果と同じ Keyがある場合、先行アクションの結果の優先順位が高くなります。
- 先行アクションでエラーが発生した場合、次のアクションは実行されません。
- シーケンスアクションは、別途の実行タイムアウトを指定することはできません。シーケンスアクションの最大実行時間は、登録されたアクション実行タイムアウトの合計と同じです。例) アクション1、アクション2の実行タイムアウトがそれぞれ1分、3分である場合、シーケンスアクションは最大4分まで実行可能
上記の注意事項を考慮して、シーケンスアクションシナリオを設定する方法は、次の通りです。
- Packages/Actionsでシーケンスアクションに追加するアクションをクリックします。
- 追加したアクションの実行順序を設定します。
- 実行順序変更: 実行順序を変更するアクションをドラッグ
- 追加したアクションの削除:
ボタンをクリック