Put Action

Prev Next

Cloud Functions 액션을 생성, 수정합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
PUT /ncf/api/v2/packages/{packageName}/actions/{actionName}

요청 헤더

Cloud Funtions API에서 공통으로 사용하는 헤더에 대한 정보는 Cloud Functions 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

요청 경로 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
packageName String Required 패키지 이름
  • 영문자, 숫자, 특수문자 '-', '_'을 조합하여 1~50자 이내로 입력
  • '-'로 시작 불가
  • 다른 리소스(패키지, 액션, 트리거) 이름과 중복 불가
  • 패키지에 속하지 않은 액션인 경우 특수문자 '-' 입력
actionName String Required 액션 이름
  • 영문자, 숫자, 특수문자 '-', '_'을 조합하여 1~50자 이내로 입력
  • '-'로 시작 불가
  • 다른 리소스(패키지, 액션, 트리거) 이름과 중복 불가

요청 쿼리 파라미터

요청 쿼리 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
type String Optional 액션 유형
  • basic (기본값) | web | sequence | sequence-web
    • basic: 일반 액션
    • web: 웹 액션
    • sequence: 시퀀스 액션
    • sequence-web: 시퀀스 웹 액션
  • 다른 타입으로 변경 불가

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

Basic/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 Array Required 연결할 VPC 정보: vpc
  • VPC 플랫폼만 해당
raw-http Boolean Optional HTTP 원문 사용 여부
  • 웹 액션 타입만 지원
custom-options Boolean Optional HTTP 헤더 옵션 설정
  • 웹 액션 타입만 지원

vpc

vpc에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
vpcNo Integer Required 연결할 VPC ID
subnetNo Integer Required 연결할 Subnet ID

Sequence/Sequence-web 액션

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.fin-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}'
--data '{
    "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 Object - 액션 생성, 수정 정보
content.name String - 액션 이름
content.resourceId String - 액션의 리소스 ID
content.path String - 액션 경로
content.description String - 액션 설명
content.type String - 액션 유형

Basic/Web 액션

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 Array - 연결된 VPC 정보: vpc
  • 플랫폼이 VPC인 경우에만 노출됨

vpc

vpc에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
vpcNo Integer - 연결된 VPC ID
subnetNo Integer - 연결된 Subnet ID

Sequence/Web-sequence 액션

Sequence/Sequence-web 액션에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
content.exec.kind String - 액션 종류
  • sequence (고정 값)
content.exec.components String[] - 연결된 액션 리스트

응답 상태 코드

Cloud Functions API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Cloud Functions 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

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