VPC環境で利用できます。
NAVERクラウドプラットフォームコンソールの Cloud Functions > Actionでアクションを作成できます。アクションを作成する方法は次の通りです。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Compute > Cloud Functionsメニューを順にクリックします。 - Actionメニューをクリックします。
- [Action作成] ボタンをクリックします。
- 作成するアクションの内容を設定します。
- 基本情報: 所属パッケージ、アクションタイプ、名前、説明を設定
- ソースコード: コンソールでコードを選択した言語で直接作成するか、コードファイルをアップロード
- デフォルトパラメータ: アクションに使用するデフォルトパラメータコードを作成
- VPC接続情報: VPCリソースにアクセスするための VPC、Subnetを設定
- オプション設定: アクションのメイン関数名、メモリ、タイムアウト、ウェブアクションを設定
- [保存] ボタンをクリックします。
基本情報
アクションを作成するために基本的に必要な情報を設定します。基本情報の各項目に関する説明は次の通りです。
- パッケージ: アクションが属するパッケージをクリックして選択。新しいパッケージを作成して含めるには、 [+作成] ボタンをクリック
- タイプ: アクションの種類をクリックして選択
- 一般アクション: デフォルトアクションタイプで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!"}
デフォルトパラメータの暗号化
アクションに必要なデータを安全に使用するには、アクションのデフォルトパラメータの暗号化設定を通じて Key Management Serviceと連携できます。Key Management Serviceは、ユーザーの重要なデータを暗号化するために使用したキーを厳格で安全なポリシーの下で保護する NAVERクラウドプラットフォームのサービスです。
アクションデフォルトパラメータの暗号化設定では、Key Management Serviceの安全なキー管理サービスを利用し、アクションに使用するデータを暗号化して安全に保存し、アクションが実行される時には簡単に復号化されたデータを使用できます。
- デフォルトパラメータの暗号化設定は VPCプラットフォームのみサポートします。
- Key Management Serviceの詳しい使用方法は、Key Management Serviceご利用ガイドをご参照ください。
- Key Management Serviceのご利用の申し込み時に別途の料金が発生します。
Key Management Serviceの紹介と料金プランに関する説明は、Key Management Service紹介をご参照ください。 - Cloud Functionsのデフォルトパラメータは、Key Management Serviceの中から「AES-256」タイプのキーをマスターキーとして使用して暗号化します。データの性質によって AES-256対称キーを通じた暗号化/復号化が適切でないと判断される場合は、別途のデータ保護方式を適用します。
- 収束暗号化(Convergent Encryption)方式が設定されたキーはサポートしません。
- デフォルトパラメータの暗号化設定の使用時に復号化されたパラメータの優先順位が最も高く適用されます。
- Key Management Serviceのキーは、キー境界によってグローバル(Global)キーとリージョン隔離キーに分けられます。グローバルキーはすべてのリージョンでサポートし、リージョン隔離キーは韓国と日本リージョンでのみサポートします。リージョン隔離キーの詳しい説明は、Key Management Serviceのキー隔離をご参照ください。
- 要配慮情報を表示しないため、復号化されたパラメータをログとして記録したり、アクションの実行結果に含めないことをお勧めします。
使用例
- デフォルトパラメータ領域に使用するデータの JSON形式に合わせて作成します。作成した JSONデータの中から depthが1である stringタイプのデータのみ暗号化をサポートします。
.png?sv=2022-11-02&spr=https&st=2026-03-11T12%3A10%3A29Z&se=2026-03-11T12%3A22%3A29Z&sr=c&sp=r&sig=kSgAQ8ccDRWpx5jv3%2BWUh97FjwXY3WR2arnfZPpx56I%3D)
- 暗号化設定を ONに変更し、使用する NCloud Key Management Serviceのキー境界を選択します。境界選択領域は隔離キーをサポートする韓国、日本リージョンでのみ表示され、それ以外の環境では基本的にグローバルキーが表示されます。リージョン隔離キーの詳しい説明は、Key Management Serviceのキー隔離をご参照ください。
.png?sv=2022-11-02&spr=https&st=2026-03-11T12%3A10%3A29Z&se=2026-03-11T12%3A22%3A29Z&sr=c&sp=r&sig=kSgAQ8ccDRWpx5jv3%2BWUh97FjwXY3WR2arnfZPpx56I%3D)
- 使用する NCloud Key Management Serviceの AES-256タイプキーを選択します。キーはアクションごとに1つ選択できます。
.png?sv=2022-11-02&spr=https&st=2026-03-11T12%3A10%3A29Z&se=2026-03-11T12%3A22%3A29Z&sr=c&sp=r&sig=kSgAQ8ccDRWpx5jv3%2BWUh97FjwXY3WR2arnfZPpx56I%3D)
- 暗号化するデフォルトパラメータの JSONキーを選択して [適用] ボタンをクリックします。
.png?sv=2022-11-02&spr=https&st=2026-03-11T12%3A10%3A29Z&se=2026-03-11T12%3A22%3A29Z&sr=c&sp=r&sig=kSgAQ8ccDRWpx5jv3%2BWUh97FjwXY3WR2arnfZPpx56I%3D)
- 選択した JSONキーに該当するデフォルトパラメータが暗号化され、パラメータキー領域下に暗号化されたパラメータ JSONキーが表示されます。

- アクション作成を完了し、アクションを実行します。
VPC接続情報
アクションを使用して自分の VPCリソースにアクセスできるように設定します。VPC環境で Cloud Functionsを利用する場合、VPCリソース接続の設定は必須です。VPC接続情報の各項目に関する説明は次の通りです。
- VPC: アクションがアクセスする VPC名をクリックして選択。新しい VPCを作成するには、 [VPC作成] ボタンをクリック
- Subnet: 選択した VPCにアクセスする際に使用する Subnetをクリックして選択
- 連携可能な Subnetの種類: Privateのみ可能
- Public Subnetリソースへのアクセス方法: Private Subnetリソースと同様に ACG設定で可能
- Private Subnetと連携したアクションでのインターネット通信方法: Subnetに NAT Gatewayを設定することで可能です。設定方法は NAT Gateway ご利用ガイドを参照
Cloud Functionsは高可用性の保障のために、VPCリソースアクセスの設定時にリージョン別マルチゾーンをサポートします。リージョン別にサポートする Zoneの情報は次の通りです。
- 韓国: KR-2
- シンガポール: SGN-4、SGN-5
- 日本: JPN-4、JPN-5
ただし、アクションごとに VPCは1つ選択でき、Zone別に1つの Subnetを追加できます。
ACG設定
VPC、Subnetの設定が完了したら、次は実際のアクションコード内で VPCリソースへのアクセス許可をするために、アクセスするリソースの ACGを設定します。
ACGの詳しい使用方法は、ACGご利用ガイドをご参照ください。
VPC環境で Cloud Functionsアクションを作成すると、接続された VPC環境の ACGの設定で使用できるアクセスソースに cloudfunctions-vpc-{vpc ID}の別名が自動作成され、自動作成されたエイリアスを ACGの Inboundルールのアクセスソースに追加します。
VPC IDは、NAVERクラウドプラットフォームコンソール VPC環境の
> Services > Networking > VPC > VPC Managementで確認できます。

例えば、アクションコードで VPCに作成したサーバにアクセスするには、以下のようにサーバに適用する ACGルール設定の Inboundタブメニューをクリックし、アクセスソースに cloudfunctions-vpc-{vpc ID}を追加します。

VPCに作成された Cloud DBにアクセスするには、一般サーバと同様に DBサーバ作成時に自動作成されるエイリアスを ACGの Inboundルールに追加します。
VPCリソースアクセスの設定後は、Cloud DBと連携して様々なサービスを構築できます。Cloud Functionsと Cloud DBの連携でアプリケーションサーバなしで APIを提供するユースケースを確認するには、NAVERクラウドプラットフォームの公式ブログを訪問してください。
オプション設定
アクションの 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でシーケンスアクションに追加するアクションをクリックします。
- 追加したアクションの実行順序を設定します。
- 実行順序変更: 実行順序を変更するアクションをドラッグ
- 追加したアクションの削除:
ボタンをクリック