Action/Trigger の実行
    • PDF

    Action/Trigger の実行

    • PDF

    記事の要約

    Classic環境で利用できます。

    作成したアクションやトリガーを実行できます。 NAVERクラウドプラットフォームのAPI Gatewayを利用中の場合、リモートで実行できるように外部接続アドレスを作成することもできます。

    コンソールで実行

    アクション(トリガー)をNAVERクラウドプラットフォームコンソールで実行する方法は、以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールのRegionメニューで、利用中のリージョンをクリックして選択します。
    2. PlatformメニューでClassicをクリックして選択します。
    3. Services > Compute > Cloud Functionsメニューを順にクリックします。
    4. Action(Trigger) メニューをクリックします。
    5. Packages/Actions(Trigger) で実行するアクションをクリックします。
    6. 基本情報タブメニューをクリックし、[実行] ボタンをクリックします。
    7. 実行のポップアップが表示されたら、必要な情報を設定します。
      • 名前:実行するアクション(トリガー)の名前を確認
      • ランタイムパラメータ:アクション(トリガー)の実行時点に伝達してアクション(トリガー)の実行時に使用するパラメータをJSON形式で作成。 ランタイムパラメータは、アクション(トリガー)に適用されたデフォルトパラメータやパッケージパラメータより適用優先順位が高い
        {
          "name": "Ncloud_2",
          "place": "Cloud Function 2"
        }
        
      • 結果だけを見る:実行結果のサマリーを確認するかどうかをクリックして選択(True:最終実行結果だけ要約して確認、False:メタデータ、最終実行結果など全体を確認)
    8. [実行] ボタンをクリックします。
    9. 結果で実行結果を確認します。
      • アクションの実行結果
        cloudfunctions-action-vpc_01_ko
      • トリガーの実行結果
        cloudfunctions-action-vpc_02_ko
    10. 結果コードをコピーするには、[コピーする] ボタンをクリックします。
    参考
    1. で実行結果とactivationIdの値のみ確認できる場合、残りの詳細内容はアクション(トリガー)のモニタリングタブメニューで確認できます。

    外部接続アドレスの作成

    NAVERクラウドプラットフォームのAPI Gatewayを利用して外部接続アドレスを作成すると、アクション(トリガー)をリモートで実行できます。 ただし、外部接続アドレスは、アクションとBasic Trigger、GitHub Triggerのみ作成できます。

    注意
    • API Gatewayの利用を申し込むと、別途料金が発生します。 API Gatewayの紹介や料金プランについての詳しい説明は、NAVERクラウドプラットフォームポータルの サービス > Application Services > API Gateway メニューをご参照ください。
    • 外部接続アドレスを設定したアクション(トリガー)を削除すると、関連付けられたAPI Gatewayリソースも一緒に削除されます。そのAPI Gateway Stageに1つ以下のリソースしかない場合、Stageも削除されることにご注意ください。

    外部接続アドレスを作成する方法は以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールのRegionメニューで、利用中のリージョンをクリックして選択します。
    2. PlatformメニューでClassicをクリックして選択します。
    3. Services > Compute > Cloud Functionsメニューを順にクリックします。
    4. Action(Trigger) メニューをクリックします。
    5. Packages/Actions(Triggers) でリモート実行できるように設定するアクション(トリガー)をクリックします。
    6. 基本情報タブメニューをクリックし、[外部接続アドレスを作成] ボタンをクリックします。
    7. 外部接続アドレスの作成ポップアップが表示されたら、Productの選択で使用するProductをクリックして選択し、[次へ] ボタンをクリックします。
      • 新しいProductを作成して選択する場合、新規作成をクリックして入力
    8. APIの選択で使用するAPIをクリックして選択し、[次へ] ボタンをクリックします。
      • 新しいAPIを作成して選択する場合、新規作成をクリックして入力
    9. Stageの選択で配布するStageをクリックして選択します。
      • 新しいAPIを作成して選択する場合、新規作成をクリックして入力
    10. 認証で、APIセキュリティのためのIAM認証の使用有無をクリックして選択します。
    11. [完了] ボタンをクリックします。
    参考
    • API Gatewayの詳しい使用方法は、API Gatewayご利用ガイドを参照してください。
      • ⇒ API Gatewayを利用したアクション(トリガー)の関連付けには、API Gatewayが提供するIAM認証による非公開呼び出しとNoneによる公開呼び出し方式を提供します。 詳しい設定方法はAPI Gatewayご利用ガイドを参照してください。

    URLの構成

    アクションとトリガーには、呼び出しできるURL情報が含まれています。 一般的なアクションやトリガーの場合、POSTリクエスト形式をサポートします。 一方、ウェブ属性がTrueのウェブアクションは、GET、POST、PUT、DELETE、OPTIONなどRESTリクエスト形式をすべてサポートするため、API Gatewayにより作成されるURLにタイプを明示できる区間が追加されます。タイプの値は明示的に追加する必要があります。 URLパラメータは、タイプの末尾に?key=valueの形式で追加できます。
    API Gatewayを利用して作成した外部接続アドレスの基本的な形式と構成についての説明は、以下のとおりです。

    https://{product_id}.apigw.ntruss.com/{api_name}/{stage_name}/{resource_name}/{type+}
    
    • product_id:API Gatewayで作成したProduct ID
    • api_name:API Gatewayで作成したAPIの名前
    • stage_name:API Gatewayで作成・配布したstageの名前
    • resource_name:API Gatewayで作成したresource名で、リソース上書きによる問題を防止するためにランダムに作成
    • type+:ウェブアクションに対する外部接続アドレスの場合、リクエストに対するレスポンスを構成する形。 /json/http/svg/html/textなどをサポート
    • アクションクエリストリング
      • blocking
        • true:同期実行リクエスト。 アクションの実行が完了した後にHTTPレスポンスを受けることができ、アクションの実行結果がレスポンスBodyの値として伝達。 アクションの実行が1分を超過すると、非同期呼び出しに切り替えられ、直ちにHTTPレスポンスを伝達
        • false:非同期実行リクエスト(デフォルト値)。 アクション実行の成否に関係なく直ちにHTTPレスポンス。 レスポンスBodyには実行結果固有ID(activationId)のみ伝達
      • result
        • true:実行結果のうち、アクション(トリガー)の実行に対する最終リターン値(response.result)だけHTTPレスポンスBodyで伝達
        • false:デフォルト値。 実行結果全体をHTTPレスポンスBodyで伝達
    注意

    トリガーは非同期実行リクエストのみサポートし、レスポンスbodyに実行結果は含まれません。

    ターミナルで実行

    Curlを利用してターミナルで実行できます。 実行時のresultの値をtrueに設定すると最終実行結果のみ要約して表示し、falseに設定すると最終実行結果を含めて実行に関連するいろいろなメタデータを一緒に表示します。

    アクション/トリガー

    一般的なアクションやトリガーは、ActionURLとJSON形式で作成したパラメータを入力して実行できます。 この場合、HTTP POSTでのみ実行できます。

    $curl -X POST -d "{伝達するパラメータ}"  -H "Content-Type: application/json" "{action_url}?blocking=true&result=true"
    

    以下は、ActionURLの値が「https://zzz」で、伝達するパラメータが{"info":"qqq"}の場合の例です。

    $curl -X POST -d "{/"info/":/"qqq/"}"  -H "Content-Type: application/json" -H "https://zzz?blocking=true&result=true"
    

    ウェブアクション

    ウェブ属性のアクションは、HTTP POSTだけでなくREST形式で提供されるすべての形式のリクエストを処理できます。

    $curl -X GET -d "{伝達するパラメータ}"  -H "Content-Type: application/json"  "{action_url}{type+}?blocking=true&result=true"
    

    以下は、ActionURLの値が「https://zzz」で、伝達するパラメータが{"info":"qqq"}の場合の例です。

    $curl -X GET -d "{/"info/":/"qqq/"}"  -H "Content-Type: application/json" "https://zzz/http?blocking=true&result=true"
    

    実行結果

    アクションやトリガーを実行した結果を確認・管理できます。

    モニタリング

    アクションやトリガーを実行した結果は、コンソールのDashboard、もしくは実行したアクションやトリガーのモニタリング画面で確認できます。

    参考

    Dashboardは、アクションの実行結果のみ確認できます。

    ログの設定

    アクションの実行に対するログを作成するように設定できます。 すべてのアクションコンテナは、stdoutstderrで出力された情報にTimestamp情報を追加してlogsフィールドで返します。 以下は、ログを作成するように設定して確認するNode.jsとPythonアクションのサンプルコードです。

    • Node.js

      • ログの設定

        function main(params) {
            var name = params.name || 'World';
            var place = params.place || 'Naver';
            var payload = 'Hello, ' + name + ' in ' + place + '!';
            console.log(payload)
            console.error(payload)
            return {payload:  payload};
        }
        
      • 結果を照会してログを確認
        cloudfunctions-dashboard-vpc_04_ko

        {
          ...
            "logs": [
                "2018-02-01T06:50:26.134193098Z stdout: Hello, World in Naver!",
                "2018-02-01T06:50:26.134293524Z stderr: Hello, World in Naver!"
            ],
          ...
        }
        
    • Python

      • ログの設定
        from __future__ import print_function
        import sys
        
        def main(args):
            name = args.get("name", "stranger")
            greeting = "Hello " + name + "!"
            print (greeting)
            print (greeting, file=sys.stderr)
            return {"greeting": greeting}
        
      • 結果を照会してログを確認
        {
          ...
            "logs": [
                "2018-02-01T07:16:33.847246459Z stderr: Hello stranger!",
                "2018-02-01T07:16:33.847308738Z stdout: Hello stranger!"
            ],
          ...
        }
        

    類似の方式で、他の言語のアクションでもstdoutstderrでメッセージを出力してログを作成するように設定できます。


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

    What's Next
    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.