デフォルトアクション
    • PDF

    デフォルトアクション

    • PDF

    Article Summary

    VPC環境で利用できます。

    NAVERクラウドプラットフォームコンソールの Cloud Functions > Action でデフォルトタイプのアクションを作成して修正・削除できます。作成したアクションを実行してモニタリングする方法は、Action/Triggerの実行Actionをご参照ください。

    アクション作成

    アクションを作成します。アクションの作成時にトリガーを関連付けるか、トリガーがない場合はトリガーを追加して関連付けることができます。トリガーを関連付けなくても動作可能なアクションを作成することもできます。アクションを作成する方法は次の通りです。

    1. NAVERクラウドプラットフォームコンソールの Region メニューで、利用中のリージョンをクリックして選択します。
    2. Platform メニューで VPC をクリックして選択します。
    3. Services > Compute > Cloud Functions メニューを順にクリックします。
    4. Action メニューをクリックします。
    5. [Action作成] ボタンをクリックします。
    6. トリガー選択トリガー種類 で、アクションに関連付けるトリガーをクリックして選択します。
    • トリガー設定なしでアクションを作成: トリガーを関連付けずに作成する場合
    1. 名前 で関連付けるトリガーをクリックして選択し、[追加] ボタンをクリックします。
    • 新しいトリガーを作成: 関連付けるトリガーがないか、新しいトリガーを作成して関連付ける場合。詳しい使用方法は、Triggerを参照
    1. 関連付けのトリガーリストが表示されたら、情報を確認して [次へ] ボタンをクリックします。
    2. 作成するアクションの内容を設定します。
      • 基本情報: アクションのタイプ、名前、説明、所属パッケージを設定
      • ソースコード: 選択した言語でコンソールからコードを直接作成するか、コードファイルをアップロード
      • デフォルトパラメータ: アクションに使用するデフォルトパラメータコードを作成
      • VPC関連付け情報: VPCリソースアクセスのための VPC、Subnet設定
      • オプション設定: アクションのメイン関数名、メモリ、タイムアウト、ウェブアクションを設定
    3. [作成] ボタンをクリックします。

    基本情報

    アクションを作成するために基本的に必要な情報を設定します。 基本情報 の各項目に関する説明は次の通りです。

    • パッケージ: アクションが属するパッケージをクリックして選択。新しいパッケージを作成して含めるには、 [作成] ボタンをクリック
    • タイプ: アクションの種類の中から デフォルト をクリックして選択
      • デフォルト: 1つのアクションを実行
      • シーケンス: 複数のアクションをつなげて順次実行
    • 名前: アクション名を英大小文字、数字、記号「-」「_」を組み合わせて入力。ただし、先頭の文字に記号「-」は使用できず、他のリソース(パッケージ、アクション、トリガー)名と重複不可
      • パッケージ名が package nameで、アクション名が action nameの場合、パッケージに属するアクション名の形式: {package name}/{action name}
    • 説明: 作成するアクションについての説明を入力
    注意
    • パッケージを選択せず所属するパッケージがない状態でもアクションを作成できますが、パッケージを作成してアクションをパッケージに含めることをお勧めします。
    • シーケンスタイプのアクションを作成する方法は、シーケンスをご参照ください。
    • アクションの名前と種類は修正できないことにご注意ください。

    ソースコード

    アクションコードは、希望する言語でコンソールで直接作成するか、コードファイルをアップロードします。コードの作成時に実行時点のランタイムパラメータを設定しないと、パッケージや関連付けられたトリガー、アクションのデフォルトパラメータが使用されます。ランタイムパラメータの他にも、追加設定に対するコードを別途作成しない場合は、関連設定はデフォルト値が適用されます。作成後に変更できない値もあることに注意して作成してください。 ソースコード の各項目に関する説明は次の通りです。

    • 言語: ソースコード作成言語をクリックして選択
    • タイプ: ソースコードを作成する方法をクリックして選択
      • コード: コンソールで直接作成
      • ファイル: 作成したソースコードファイルを Drop files here or click to upload。 をクリックしてアップロード
    注意
    • 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;
          }
      }
      

    デフォルトパラメータ

    アクションを実行するたびにパラメータを転送する代わりに、アクションにデフォルトで適用可能なデフォルトパラメータを入力できます。アクションのデフォルトパラメータは、パッケージパラメータより適用の優先順位が高く、トリガーパラメータとアクションの実行時点に転送されるランタイムパラメータよりは優先順位が低いです。デフォルトパラメータの各項目に関する説明は、次の通りです。

    cloudfunctions-basicaction-vpc_03_ko

    • 入力ボックス: 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)方式が設定されたキーはサポートしません。
    • デフォルトパラメータの暗号化設定の使用時に復号化されたパラメータの優先順位が最も高く適用されます。
    注意
    • 要配慮情報を表示しないため、復号化されたパラメータをログとして記録したり、アクションの実行結果に含めないことをお勧めします。
    • 使用例
    1. デフォルトパラメータ領域に使用するデータの JSON形式に合わせて作成します。作成した JSONデータの中から depthが1である stringタイプのデータのみ暗号化をサポートします。

    cloudfunctions-basicaction-vpc_04_ko

    1. 暗号化設定を ONに変更し、使用する NCloud Key Management Serviceの AES-256タイプキーを選択します。キーはアクションごとに1つ選択できます。

    cloudfunctions-basicaction-vpc_05_ko

    1. 暗号化するデフォルトパラメータの JSONキーを選択します。

    cloudfunctions-basicaction-vpc_06_ko

    1. 選択した JSONキーに該当するデフォルトパラメータが暗号化され、パラメータキー領域下に暗号化されたパラメータ JSONキーが表示されます。

    cloudfunctions-basicaction-vpc_07_ko

    1. アクション作成を完了し、アクションを実行します。

    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クラウドプラットフォームコンソールの Services > Networking > VPC > VPC Management で確認できます。
    cloudfunctions-basicaction-vpc_01_ko

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

    cloudfunctions-basicaction-vpc_02_ko

    VPCに作成された Cloud DBにアクセスするには、一般サーバと同様に DBサーバ作成時に自動作成されるエイリアスを ACGの Inboundルールに追加します。

    参考

    VPCリソースアクセスの設定後は、Cloud DBと連携して様々なサービスを構築できます。Cloud Functionsと Cloud DBの連携でアプリケーションサーバなしで APIを提供するユースケースを確認するには、NAVERクラウドプラットフォームの公式ブログを訪問してください。

    オプション設定

    アクションのメイン関数名、メモリ、タイムアウトを設定したり、別途のユーザー認証なしで呼び出し可能な URLを提供するウェブアクションを設定できます。ウェブアクションの場合は、様々な REST APIタイプのすべてのリクエスト(GET、POST、PUT、DELETEなど)をサポートします。
    オプション設定 の各項目に関する説明は次の通りです。

    • Main関数: アクションのメイン関数やクラス名として使用する文字列を入力
    • アクションメモリ: 希望するメモリサイズをクリックして選択
    • アクション Timeout: アクションの実行可能な最大時間を ms単位で入力。入力した時間の超過時は、実行結果失敗で終了
    • ウェブアクションの設定: ウェブプロパティのアクションの作成有無をクリックして選択(True: 作成、False: 作成しない)
      • HTTP原文の使用: ウェブアクションで HTTP原文をそのままウェブアクションで取得し、解析して処理有無をクリックして選択(True: HTTP原文を使用、False: JSONオブジェクトを使用)
      • ヘッダオプションの設定: コード内でヘッダの修正有無をクリックして選択(True: 修正可能、False: CORSヘッダをレスポンスヘッダに自動追加)

    アクション変更

    アクションの名前と種類を除く残りの内容は修正できます。変更する方法は次の通りです。

    1. NAVERクラウドプラットフォームコンソールの Region メニューで、利用中のリージョンをクリックして選択します。
    2. Platform メニューで VPC をクリックして選択します。
    3. Services > Compute > Cloud Functions メニューを順にクリックします。
    4. Action メニューをクリックします。
    5. Packages/Actions で修正するアクションをクリックします。
    6. 基本情報 タブメニューをクリックし、[変更] ボタンをクリックします。
    7. 必要な情報を変更します。
    8. [保存] ボタンをクリックします。

    アクション削除

    アクションを削除できます。アクションを削除すると、アクションに関連付けられた外部接続アドレスのリソースとステージ情報が一緒に削除され、そのアクションが含まれたシーケンスアクションが修正または削除されることがあります。また、削除したアクションは復旧できないことにご注意ください。アクションを削除する方法は次の通りです。

    1. NAVERクラウドプラットフォームコンソールの Region メニューで、利用中のリージョンをクリックして選択します。
    2. Platform メニューで VPC をクリックして選択します。
    3. Services > Compute > Cloud Functions メニューを順にクリックします。
    4. Action メニューをクリックします。
    5. Packages/Actions で削除するアクションをクリックします。
    6. 基本情報 タブメニューをクリックし、[削除] ボタンをクリックします。
    7. [削除] ボタンをクリックします。

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.