Put Action

Prev Next

Available in Classic and VPC

Create or edit a Cloud Functions action.

Request

The following describes the request format for the endpoint. The request format is as follows:

Method URI
PUT /packages/{packageName}/actions/{actionName}

Request headers

For headers common to all Cloud Functions APIs, see Cloud Functions common headers.

Request path parameters

The following describes the parameters.

Field Type Required Description
packageName String Required Package name
  • 1 to 50 characters, including English letters, numbers, and special characters "-" and "_", and it can't start with "-"
  • It can't be duplicated with other resource (package, action, trigger) names
  • Enter the special character "-" for actions that are not part of a package
actionName String Required Action name
  • 1 to 50 characters, including English letters, numbers, and special characters "-" and "_", and it can't start with "-"
  • It can't be duplicated with other resource (package, action, trigger) names

Request query parameters

The following describes the parameters.

Field Type Required Description
platform String Optional Platform type
  • vpc (default) | classic
type String Optional Action type
  • basic (default) | web | sequence | sequence-web
    • basic: general action
    • web: web action
    • sequence: sequence action
    • sequence-web: sequence web action
  • It can't be changed to another type

Request body

The following describes the request body.

Basic/web action

The following describes the parameters.

Field Type Required Description
description String Optional Action description (byte)
  • 0 - 3000
parameters Object Optional Default parameters of the action
  • JSON in the form of {"key" : "value"}
  • Priority of applying parameters when running actions
    • 1st priority: runtime parameters passed at runtime
    • 2nd priority: default parameters of connected triggers
    • 3rd priority: default parameters in actions
    • 4th priority: default parameters of included packages
limits.timeout Integer Required Maximum action execution time (milliseconds)
  • 500 - 300,000
  • Force terminate the action on timeout
limits.memory Integer Required Maximum memory size for the action (MB)
  • 128 | 256 | 512 | 1024
exec.kind String Required Action runtime
exec.imageUri String Conditional User image path
  • Only applicable for custom image runtimes
  • {registryName}/{imageName}:{tag} format
  • If tag is not entered, the default is latest
exec.binary Boolean Required Whether the action code file is binary
  • true | false
    • true: Enter the Base64-encoded value from the action code file in exec.code
    • false: Enter the action code in exec.code
exec.code String Required Action source code
  • Source code: Enter the code verbatim
  • File attachment: Enter the action code file binary data encoded in Base64
  • Need to escape when typing code directly
  • Java or .NET runtime only allows file binaries
  • Java can only be registered as a compressed *.jar file
  • .NET (dotnet) can only be uploaded as a *.zip file (compressed file)
exec.main String Required Execution function
vpc Object[] Required Information about the VPC to connect
  • Only applicable for the VPC platform
vpc[].vpcNo Integer Required ID of the VPC to connect
vpc[].subnetNo Integer Required ID of subnet to connect
raw-http Boolean Optional Whether to use the HTTP origin
  • Supported only for the web action type
custom-options Boolean Optional Set the HTTP header options
  • Supported only for the web action type

Sequence/sequence-web action

The following describes the parameters.

Field Type Required Description
description String Optional Action description (byte)
  • 0 - 3000
exec.kind String Required Action type
  • sequence (fixed value)
exec.components String[] Required List of actions to connect to the sequence action
  • {packageName}/{actionName} format
  • Run in list order
  • When connecting an action that is not part of a package, enter the special character "-" in packageName

Request example

The following is a sample request.

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 '<See below>'
{
    "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" : *****
        }
    ]
}

Response

The following describes the response format.

Response body

The following describes the response body.

Common fields

Field Type Description
content.name String Action name
content.resourceId String Action's resource ID
content.path String Action path
content.description String -
content.type String -

Basic/web action

Field Type Description
content.parameters Object Default parameters of the action
content.raw-http Boolean Whether to use the HTTP origin
  • Supported only for the web action type
content.custom-options Boolean Set the header options
  • Supported only for the web action type
content.exec.binary Boolean Whether the action code is file binary
content.exec.code String Action source code or Base64-encoded code file binary
content.exec.imageUri String User image path
  • It is displayed only if the runtime is custom image
content.exec.kind String Action runtime
content.exec.main String Execution function
content.limits.memory Integer Size of memory allocated to the action container
content.limits.timeout Integer Maximum time an action can run
content.vpc Object[] -
content.vpc[].vpcNo Integer -
content.vpc[].subnetNo Integer -

Sequence/web-sequence action

Field Type Description
content.exec.kind String Action type
  • sequence (fixed value)
content.exec.components String[] List of connected actions

Response status codes

The following describes the response status codes.

HTTP status code Code Messages Description
400 80300 ACTION_INVALID_NAME Invalid action name
400 80102 PACKAGE_PLATFORM_MISMATCH The platform of the action's parent package can't be changed
400 80302 ACTION_PLATFORM_MISMATCH Action's platform can't be changed
400 80303 ACTION_INVALID_TYPE Invalid action type
400 80304 ACTION_TYPE_MISMATCH Action's type can't be changed
400 80305 ACTION_BODY_INVALID_TYPE Invalid request body field type
400 80306 ACTION_BODY_MISSING_FIELD Missing required fields in the request body
400 80307 ACTION_BODY_INVALID_VALUE Invalid request body field value
403 80002 SUB_ACC_NO_PERMISSION Detailed permission error
409 80011 RESOURCE_NAME_CONFLICT Duplicate resource name
422 80308 ACTION_COUNT_EXCEED Maximum number of actions exceeded
500 81311 ACTION_NAT_EXCEPTION Subnet query failed
500 81312 NAT_CREATE_FAIL Subnet connection failed
500 81313 NAT_BEING_CREATED Subnet being connected
500 81314 NAT_RETURN_FAIL Subnet being disconnected

Response example

The following is a sample example.

{
    "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": *****
            }
        ]
    }
}