Put Action
    • PDF

    Put Action

    • PDF

    기사 요약

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

    요청

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

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

    요청 헤더

    Cloud Functions API에서 공통으로 사용하는 헤더에 대한 자세한 내용은 Cloud Functions 공통 헤더를 참조해 주십시오.

    요청 경로 파라미터

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

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

    요청 쿼리 파라미터

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

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

    요청 바디

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

    Basic/Web 액션

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

    필드타입필수 여부설명
    descriptionStringOptional액션 설명(Byte)
    • 0~3,000
    parametersObjectOptional액션의 기본 파라미터
    • {"key" : "value"} 형태의 JSON
    • 액션 실행 시 파라미터 적용 우선순위
      • 1순위: 실행 시점에 전달되는 런타임 파라미터
      • 2순위: 연결된 트리거의 기본 파라미터
      • 3순위: 액션의 기본 파라미터
      • 4순위: 포함된 패키지의 기본 파라미터
    limits.timeoutIntegerRequired액션 실행 최대 시간(밀리초)
    • 500~300,000
    • 타임아웃 초과 시 액션 강제 종료
    limits.memoryIntegerRequired액션 최대 메모리 크기(MB)
    • 128 | 256 | 512 | 1024
    exec.kindStringRequired액션 런타임
    exec.imageUriStringConditional사용자 이미지 경로
    • Custom Image 런타임만 해당
    • {registryName}/{imageName}:{tag} 형태
    • tag 입력되지 않은 경우 기본값은 latest
    exec.binaryBooleanRequired액션 코드 파일 바이너리 여부
    • true | false
      • true: exec.code에 액션 코드 파일의 Base64 인코딩된 값을 입력
      • false: exec.code에 액션 코드를 입력
    exec.codeStringRequired액션 소스 코드
    • 소스 코드: 코드 내용을 그대로 입력
    • 파일 첨부: 액션 코드 파일 바이너리 데이터를 Base64 인코딩하여 입력
    • 코드를 직접 입력할 경우 이스케이프(escape) 처리 필요
    • Java 또는 .net 런타임은 파일 바이너리만 허용
    • Java는 압축된 *.jar 파일 형태로만 등록 가능
    • .net(dotnet)의 경우 *.zip 파일(압축 파일) 형태로만 업로드 가능
    exec.mainStringRequired실행 함수
    vpcObject[]Required연결할 VPC 정보
    • VPC 플랫폼만 해당
    vpc[].vpcNoIntegerRequired연결할 VPC ID
    vpc[].subnetNoIntegerRequired연결할 Subnet ID
    raw-httpBooleanOptionalHTTP 원문 사용 여부
    • 웹 액션 타입만 지원
    custom-optionsBooleanOptionalHTTP 헤더 옵션 설정
    • 웹 액션 타입만 지원

    Sequence/Sequence-web 액션

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

    필드타입필수 여부설명
    descriptionStringOptional액션 설명(Byte)
    • 0~3,000
    exec.kindStringRequired액션 종류
    • sequence (고정 값)
    exec.componentsString[]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}'
    -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.nameString액션 이름
    content.resourceIdString액션의 리소스 ID
    content.pathString액션 경로
    content.descriptionString-
    content.typeString-

    Basic/Web 액션

    필드타입설명
    content.parametersObject액션의 기본 파라미터
    content.raw-httpBooleanHTTP 원문 사용 여부
    • 웹 액션 타입만 지원
    content.custom-optionsBoolean헤더 옵션 설정
    • 웹 액션 타입만 지원
    content.exec.binaryBoolean액션 코드의 파일 바이너리 여부
    content.exec.codeString액션 소스 코드 또는 Base64-encoded 코드 파일 바이너리
    content.exec.imageUriString사용자 이미지 경로
    • 런타임이 Custom Image인 경우에만 노출됨
    content.exec.kindString액션 런타임
    content.exec.mainString실행 함수
    content.limits.memoryInteger액션 컨테이너에 할당되는 메모리 크기
    content.limits.timeoutInteger액션이 실행될 수 있는 최대 시간
    content.vpcObject[]-
    content.vpc[].vpcNoInteger-
    content.vpc[].subnetNoInteger-

    Sequence/Web-sequence 액션

    필드타입설명
    content.exec.kindString액션 종류
    • sequence (고정 값)
    content.exec.componentsString[]연결된 액션 리스트

    응답 상태 코드

    응답 상태 코드에 대한 설명은 다음과 같습니다.

    HTTP 상태 코드코드메시지설명
    40080300ACTION_INVALID_NAME잘못된 액션 이름
    40080303ACTION_INVALID_TYPE잘못된 액션 타입
    40080304ACTION_TYPE_MISMATCH액션의 타입 변경 불가
    40080305ACTION_BODY_INVALID_TYPE잘못된 요청 바디 필드 타입
    40080306ACTION_BODY_MISSING_FIELD필수 요청 바디 필드 누락
    40080307ACTION_BODY_INVALID_VALUE잘못된 요청 바디 필드 값
    40380002SUB_ACC_NO_PERMISSION상세 권한 오류
    40980011RESOURCE_NAME_CONFLICT중복된 리소스 이름
    42280308ACTION_COUNT_EXCEED최대 액션 개수 초과
    50081311ACTION_NAT_EXCEPTION서브넷 조회 실패
    50081312NAT_CREATE_FAIL서브넷 연결 실패
    50081313NAT_BEING_CREATED서브넷 연결 중
    50081314NAT_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": *****
                }
            ]
        }
    }
    

    이 문서가 도움이 되었습니까?

    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.