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}
요청 경로 파라미터
파라미터명 | 타입 | 필수 여부 | 설명 | 제약 사항 |
---|---|---|---|---|
packageName | String | Y | 패키지 이름 - package에 속하지 않은 action을 생성하는 경우 붙임표( - )를 입력 | 영문, 숫자, 붙임표( - ), 밑줄 문자( _ )로 구성한 50자 이내의 문자열 |
actionName | String | Y | 액션 이름 | 영문, 숫자, 붙임표( - ), 밑줄 문자( _ )로 구성한 50자 이내의 문자열 |
요청 파라미터
요청 파라미터는 다음과 같습니다.
파라미터명 | 타입 | 필수 여부 | 설명 | 제약 사항 |
---|---|---|---|---|
type | String | N | 액션 타입 - options: basic/web/sequence/sequence-web - default: basic | 다른 타입으로 변경 불가 |
요청 바디
Basic/Web 액션
필드명 | 타입 | 필수 여부 | 설명 | 제약 사항 |
---|---|---|---|---|
description | String | N | 액션 설명 | 최대 3000 bytes |
parameters | Object | N | 액션 디폴트 파라미터 - JSON 형식. {"key" : "value"}의 형태 - 액션 실행 시 파라미터 적용 우선 순위 ** 1순위: 실행 시점에 전달되는 런타임 파라미터 ** 2순위: 연결된 트리거의 디폴트 파라미터 ** 3순위: 액션의 디폴트 파라미터 ** 4순위: 포함된 패키지의 디폴트 파라미터 | |
limits.timeout | Integer | Y | 액션 실행 최대 시간 (ms) - options: 500~300000 | 타임아웃 초과 시 액션 강제 종료 |
limits.memory | Integer | Y | 액션 최대 메모리 크기 (MB) - options: 128/256/512/1024 | |
exec.kind | String | Y | 액션 런타임 - options: 런타임 ID 참조 | |
exec.imageUri | String | Conditional | 사용자 이미지 경로 - Custom Image 런타임만 해당 - {registryName}/{imageName}:{tag} 형태로 입력 - tag 입력되지 않은 경우 기본값은 latest | |
exec.binary | Boolean | Y | 액션 코드 파일 바이너리 여부 - false: exec.code에 액션 코드를 입력 - true: exec.code에 액션 코드 파일의 base64 encoded 값을 입력 | |
exec.code | String | Y | 액션 소스 코드 - 소스 코드: 코드 내용을 그대로 입력 - 파일 첨부: 액션 코드 파일 바이너리 데이터를 Base64 Encoded하여 입력 | - 코드를 직접 입력할 경우 escape 처리 필요 - Java 또는 .net 런타임은 파일 바이너리만 허용 - Java는 압축된 *.jar 파일 형태로만 등록 가능 - .net(dotnet)의 경우 *.zip 파일(압축 파일) 형태로만 업로드 가능 |
exec.main | String | Y | 실행 함수 | |
vpc | Object[] | Y | 연결할 VPC 정보 | |
vpc[].vpcNo | Integer | Y | 연결할 VPC ID | |
vpc[].subnetNo | Integer | Y | 연결할 Subnet ID | |
raw-http | Boolean | N | HTTP 원문 사용 여부 | Web 액션 타입만 지원 |
custom-options | Boolean | N | HTTP 헤더 옵션 설정 | Web 액션 타입만 지원 |
Sequence/Sequence-web 액션
필드명 | 타입 | 필수 여부 | 설명 | 제약 사항 |
---|---|---|---|---|
description | String | N | 액션 설명 | 최대 3000 bytes |
exec.kind | String | Y | 액션 종류 - options: sequence 고정 값 | |
exec.components | String[] | Y | 시퀀스 액션에 연결할 액션 리스트 -{packageName}/{actionName} 형태로 입력 - 리스트 순서대로 실행 | package에 속하지 않은 action을 연결하는 경우, packageName에 붙임표(-)를 입력 |
응답
응답 바디
공통 필드
필드명 | 타입 | 설명 | 비고 |
---|---|---|---|
content.name | String | 액션 이름 | |
content.resourceId | String | 액션 Resource ID | |
content.path | String | 액션 Path | |
content.description | String | 액션 설명 | |
content.type | String | 액션 타입 |
Basic/Web 액션
공통 필드 참조
필드명 | 타입 | 설명 | 비고 |
---|---|---|---|
content.parameters | Object | 액션 디폴트 파라미터 | |
content.raw-http | Boolean | HTTP 원문 사용 여부 | Web 액션 타입만 지원 |
content.custom-options | Boolean | 헤더 옵션 설정 | Web 액션 타입만 지원 |
content.exec.binary | Boolean | 액션 코드의 파일 바이너리 여부 | |
content.exec.imageUri | String | 사용자 이미지 경로 - 런타임이 Custom Image인 경우에만 노출됨 | |
content.exec.code | String | 액션 소스 코드 또는 Base64-encoded 코드 파일 바이너리 | |
content.exec.kind | String | 액션 런타임 | |
content.exec.main | String | 실행 함수 | |
content.limits.memory | Integer | 액션 컨테이너에 할당되는 메모리 크기 | |
content.limits.timeout | Integer | 액션이 실행될 수 있는 최대 시간 | |
content.vpc | Object[] | 연결된 VPC 정보 | |
content.vpc[].vpcNo | Integer | 연결된 VPC ID | |
content.vpc[].subnetNo | Integer | 연결된 Subnet ID |
Sequence/Sequence-web 액션
공통 필드 참조
필드명 | 타입 | 설명 | 비고 |
---|---|---|---|
content.exec.kind | String | 액션 종류 | 고정 값: sequence |
content.exec.components | String[] | 연결된 액션 리스트 |
오류 코드
HTTP 상태 코드 | 오류 코드 | 오류 메시지 | 설명 |
---|---|---|---|
400 | 80300 | ACTION_INVALID_NAME | 잘못된 액션 이름 |
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 | 서브넷 연결 해지 중 |
예시
요청 예시
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"
}
}
이 문서가 도움이 되었습니까?