Put Action

Prev Next

Classic/VPC環境で利用できます。

Cloud Functionsアクションを作成したり、変更したりします。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
PUT /packages/{packageName}/actions/{actionName}

リクエストヘッダ

Cloud Functions APIで共通して使用されるヘッダの詳細は、Cloud Functionsの共通ヘッダをご参照ください。

リクエストパスパラメータ

パラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
packageName String Required パッケージ名
  • 英数字、記号の「-」、「_」のみ使用して1~50文字以内で入力、先頭文字に「-」は使用不可
  • 他のリソース(パッケージ、アクション、トリガー)名と重複不可
  • パッケージに属しないアクションの場合、記号の「-」を入力
actionName String Required アクション名
  • 英数字、記号の「-」、「_」のみ使用して1~50文字以内で入力、先頭文字に「-」は使用不可
  • 他のリソース(パッケージ、アクション、トリガー)名と重複不可

リクエストクエリパラメータ

パラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
platform String Optional プラットフォーム区分
  • vpc(デフォルト) | classic
type String Optional アクションタイプ
  • basic(デフォルト) | web | sequence | sequence-web
    • basic: 一般のアクション
    • web: ウェブアクション
    • sequence: シーケンスアクション
    • sequence-web: シーケンスウェブアクション
  • 他のタイプに変更不可

リクエストボディ

リクエストボディの説明は次の通りです。

Basic/Webアクション

パラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
description String Optional アクションの説明(Byte)
  • 0~3,000
parameters Object Optional アクションのデフォルトパラメータ
  • {"key" : "value"}形式の JSON
  • アクション実行時、パラメータ適用の優先順位
    • 1番目: 実行時に渡されるランタイムパラメータ
    • 2番目: 関連付けられているトリガーのデフォルトパラメータ
    • 3番目: アクションのデフォルトパラメータ
    • 4番目: 含まれているパッケージのデフォルトパラメータ
limits.timeout Integer Required アクションの最大実行時間(ミリ秒)
  • 500~300,000
  • タイムアウト超過時はアクションを強制終了
limits.memory Integer Required アクションの最大メモリ容量(MB)
  • 128 | 256 | 512 | 1024
exec.kind String Required アクションランタイム
exec.imageUri String Conditional ユーザー画像のパス
  • Custom Imageランタイムのみ対象
  • {registryName}/{imageName}:{tag}形式
  • tagが入力されなかった場合、デフォルトはlatest
exec.binary Boolean Required アクションコードファイルはバイナリかどうか
  • true | false
    • true: exec.codeにアクションコードファイルの Base64エンコードされた値を入力
    • false: exec.codeにアクションコードを入力
exec.code String Required アクションのソースコード
  • ソースコード: コード内容をそのまま入力
  • ファイル添付: アクションコードファイルのバイナリデータを Base64エンコードして入力
  • コードを直接入力する場合、エスケープ(escape)処理が必要
  • Javaまたは.netランタイムはファイルバイナリのみ許可
  • Javaは圧縮された*.jarファイル形式のみ登録可能
  • .net(dotnet)の場合、*.zipファイル(圧縮ファイル)形式のみアップロード可能
exec.main String Required 実行関数
vpc Object[] Required 接続する VPC情報
  • VPCプラットフォームのみ対象
vpc[].vpcNo Integer Required 接続する VPC ID
vpc[].subnetNo Integer Required 接続する Subnet ID
raw-http Boolean Optional 未加工 HTTPの使用有無
  • ウェブアクションタイプのみサポート
custom-options Boolean Optional HTTPヘッダーオプションの設定
  • ウェブアクションタイプのみサポート

Sequence/Sequence-webアクション

パラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
description String Optional アクションの説明(Byte)
  • 0~3,000
exec.kind String Required アクションの種類
  • sequence(固定値)
exec.components String[] Required シーケンスアクションに関連付けるアクションリスト
  • {packageName}/{actionName}形式
  • リスト順に実行
  • パッケージに属しないアクションを関連付ける場合、packageNameに記号の「-」を入力

リクエスト例

リクエストのサンプルコードは次の通りです。

curl -X PUT 'https://cloudfunctions.apigw.ntruss.com/ncf/api/v2/packages/{packageName}/actions/{actionName}' \
--header 'Content-Type: application/json' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'
-d '<下記参照>'
{
    "description" : "My action",
    "parameters": {
        "name": "Cloud Functions",
        "place": "NCloud"
    },
    "limits": {
        "timeout": 60000,
        "memory": 128
    },
    "exec": {
        "kind": "nodejs:16",
        "code": "function main(params) { \nlet name = params.name || \"World\";\nlet place = params.place || \"Naver\"; \n  return {payload:  \"abc\"};\n}",
        "binary": false,
        "main": "main"
    },
    "vpc": [
        {
            "vpcNo" : ******,
            "subnetNo" : *****
        }
    ]
}

レスポンス

レスポンス形式を説明します。

レスポンスボディ

レスポンスボディの説明は次の通りです。

共通フィールド

フィールド タイプ 説明
content.name String アクションの名前
content.resourceId String アクションのリソース ID
content.path String アクションのパス
content.description String -
content.type String -

Basic/Webアクション

フィールド タイプ 説明
content.parameters Object アクションの基本パラメータ
content.raw-http Boolean 未加工 HTTPの使用有無
  • ウェブアクションタイプのみサポート
content.custom-options Boolean ヘッダオプションの設定
  • ウェブアクションタイプのみサポート
content.exec.binary Boolean アクションコードのファイルはバイナリかどうか
content.exec.code String アクションのソースコードまたは Base64-encodedコードファイルのバイナリ
content.exec.imageUri String ユーザー画像パス
  • ランタイムが Custom Imageの場合にのみ表示される
content.exec.kind String アクションのランタイム
content.exec.main String 実行関数
content.limits.memory Integer アクションコンテナに割り当てられるメモリの容量
content.limits.timeout Integer アクションが実行される最大時間
content.vpc Object[] -
content.vpc[].vpcNo Integer -
content.vpc[].subnetNo Integer -

Sequence/Web-sequenceアクション

フィールド タイプ 説明
content.exec.kind String アクションの種類
  • sequence(固定値)
content.exec.components String[] 関連付けられたアクションリスト

レスポンスステータスコード

レスポンスステータスコードの説明は次の通りです。

HTTPステータスコード コード メッセージ 説明
400 80300 ACTION_INVALID_NAME 無効なアクション名
400 80102 PACKAGE_PLATFORM_MISMATCH アクション上位パッケージのプラットフォームは変更不可
400 80302 ACTION_PLATFORM_MISMATCH アクションのプラットフォームは変更不可
400 80303 ACTION_INVALID_TYPE 無効なアクションタイプ
400 80304 ACTION_TYPE_MISMATCH アクションのタイプは変更不可
400 80305 ACTION_BODY_INVALID_TYPE 無効なリクエストボディフィールドタイプ
400 80306 ACTION_BODY_MISSING_FIELD 必須リクエストボディフィールド漏れ
400 80307 ACTION_BODY_INVALID_VALUE 無効なリクエストボディフィールドの値
403 80002 SUB_ACC_NO_PERMISSION 詳細権限エラー
409 80011 RESOURCE_NAME_CONFLICT 重複したリソース名
422 80308 ACTION_COUNT_EXCEED 最大アクション数を超過
500 81311 ACTION_NAT_EXCEPTION サブネットの照会に失敗
500 81312 NAT_CREATE_FAIL サブネット接続失敗
500 81313 NAT_BEING_CREATED サブネット接続中
500 81314 NAT_RETURN_FAIL サブネット接続解除中

レスポンス例

レスポンスのサンプルコードは次の通りです。

{
    "content": {
        "description": "My action",
        "exec": {
            "binary": false,
            "code": "function main(params) { \nlet name = params.name || \"World\";\nlet place = params.place || \"Naver\"; \n  return {payload:  \"abc\"};\n}",
            "kind": "nodejs:16",
            "main": "main"
        },
        "limits": {
            "memory": 128,
            "timeout": 60000
        },
        "name": "myaction",
        "parameters": {
            "name": "Cloud Functions",
            "place": "NCloud"
        },
        "path": "***QK06kFG8C/mypackage",
        "resourceId": "*****",
        "type": "basic",
        "vpc": [
            {
                "subnetNo": ******,
                "vpcNo": *****
            }
        ]
    }
}