Put Action
    • PDF

    Put Action

    • PDF

    기사 요약

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

    요청

    요청을 위한 파라미터, 헤더, 바디 정보를 설명합니다.

    요청 URL

    PUT {CLOUD_FUNCTIONS_API_URL}/packages/{packageName}/actions/{actionName}
    
    Content-Type: application/json; charset=utf-8
    x-ncp-apigw-timestamp: {Timestamp}
    x-ncp-iam-access-key: {Sub Account Access Key}
    x-ncp-apigw-signature-v2: {API Gateway Signature}
    

    요청 경로 파라미터

    파라미터명타입필수 여부설명제약 사항
    packageNameStringY패키지 이름
    - package에 속하지 않은 action을 생성하는 경우 붙임표( - )를 입력
    영문, 숫자, 붙임표( - ), 밑줄 문자( _ )로 구성한 50자 이내의 문자열
    actionNameStringY액션 이름영문, 숫자, 붙임표( - ), 밑줄 문자( _ )로 구성한 50자 이내의 문자열

    요청 파라미터

    요청 파라미터는 다음과 같습니다.

    파라미터명타입필수 여부설명제약 사항
    typeStringN액션 타입
    - options: basic/web/sequence/sequence-web
    - default: basic
    다른 타입으로 변경 불가

    요청 바디

    Basic/Web 액션

    필드명타입필수 여부설명제약 사항
    descriptionStringN액션 설명최대 3000 bytes
    parametersObjectN액션 디폴트 파라미터
    - JSON 형식. {"key" : "value"}의 형태
    - 액션 실행 시 파라미터 적용 우선 순위
    ** 1순위: 실행 시점에 전달되는 런타임 파라미터
    ** 2순위: 연결된 트리거의 디폴트 파라미터
    ** 3순위: 액션의 디폴트 파라미터
    ** 4순위: 포함된 패키지의 디폴트 파라미터
    limits.timeoutIntegerY액션 실행 최대 시간 (ms)
    - options: 500~300000
    타임아웃 초과 시 액션 강제 종료
    limits.memoryIntegerY액션 최대 메모리 크기 (MB)
    - options: 128/256/512/1024
    exec.kindStringY액션 런타임
    - options: 런타임 ID 참조
    exec.imageUriStringConditional사용자 이미지 경로
    - Custom Image 런타임만 해당
    - {registryName}/{imageName}:{tag} 형태로 입력
    - tag 입력되지 않은 경우 기본값은 latest
    exec.binaryBooleanY액션 코드 파일 바이너리 여부
    - false: exec.code에 액션 코드를 입력
    - true: exec.code에 액션 코드 파일의 base64 encoded 값을 입력
    exec.codeStringY액션 소스 코드
    - 소스 코드: 코드 내용을 그대로 입력
    - 파일 첨부: 액션 코드 파일 바이너리 데이터를 Base64 Encoded하여 입력
    - 코드를 직접 입력할 경우 escape 처리 필요
    - Java 또는 .net 런타임은 파일 바이너리만 허용
    - Java는 압축된 *.jar 파일 형태로만 등록 가능
    - .net(dotnet)의 경우 *.zip 파일(압축 파일) 형태로만 업로드 가능
    exec.mainStringY실행 함수
    vpcObject[]Y연결할 VPC 정보
    vpc[].vpcNoIntegerY연결할 VPC ID
    vpc[].subnetNoIntegerY연결할 Subnet ID
    raw-httpBooleanNHTTP 원문 사용 여부Web 액션 타입만 지원
    custom-optionsBooleanNHTTP 헤더 옵션 설정Web 액션 타입만 지원

    Sequence/Sequence-web 액션

    필드명타입필수 여부설명제약 사항
    descriptionStringN액션 설명최대 3000 bytes
    exec.kindStringY액션 종류
    - options: sequence 고정 값
    exec.componentsString[]Y시퀀스 액션에 연결할 액션 리스트
    -{packageName}/{actionName} 형태로 입력
    - 리스트 순서대로 실행
    package에 속하지 않은 action을 연결하는 경우, packageName에 붙임표(-)를 입력

    응답

    응답 바디

    공통 필드

    필드명타입설명비고
    content.nameString액션 이름
    content.resourceIdString액션 Resource ID
    content.pathString액션 Path
    content.descriptionString액션 설명
    content.typeString액션 타입

    Basic/Web 액션

    공통 필드 참조

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

    Sequence/Sequence-web 액션

    공통 필드 참조

    필드명타입설명비고
    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서브넷 연결 해지 중

    예시

    요청 예시

    curl -X PUT "https://cloudfunctions.apigw.fin-ntruss.com/ncf/api/v2/packages/-/actions/myaction?type=basic"
    -H "Content-Type: application/json"
    -H "x-ncp-iam-access-key: Y0Z9EG0lKoeWAQCSHRtM"
    -H "x-ncp-apigw-timestamp: 1546398302273"
    -H "x-ncp-apigw-signature-v2: VXjaLhHB2CdowCrqDNYg7w7GR3TYxZzM2eIZ+i3IH0Q="
    -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" : 1,
                "subnetNo" : 2
            }
        ]
    }
    

    응답 예시

    {
        "content": {
            "description": "My action",
            "type": "basic",
            "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": "NAVER Cloud"
            },
            "vpc": [
                {
                    "vpcNo" : 1,
                    "subnetNo" : 2
                }
            ],
            "path": "kHbJQSZDDh3m/myaction",
            "resourceId": "DNzbS"
        }
    }
    

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

    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.