스크립트 개발 / 함수 작성 및 호출
본 문서는 DataFlux Func에서 스크립트를 개발하기 위한 가장 기본적인 문서이며, 읽고 나면 DataFlux Func에서 가장 기본적인 개발 및 사용 작업을 수행할 수 있습니다.
1. 읽기 전 안내
DataFlux Func 사용 중에는,
여러 명이 같은 계정으로 로그인하지 말고, 여러 명이 동시에 같은 코드를 편집하지 마십시오.
코드가 서로 덮어쓰여 분실되는 문제를 방지하기 위함입니다.
2. 첫 번째 함수 작성 및 호출
DataFlux Func에서 코드를 작성하는 것은 일반적인 Python 코드 작성과 크게 다르지 않습니다.
API로 노출해야 하는 함수에는 내장된 @DFF.API(...) 데코레이터를 추가하기만 하면 됩니다.
함수의 반환값이 곧 인터페이스의 반환값이며, 반환값이 dict, list인 경우 시스템은 자동으로 JSON으로 반환합니다.
전형적인 함수의 예는 다음과 같습니다.
| Python | |
|---|---|
1 2 3 4 5 6 | |
DataFlux Func 플랫폼은 DFF.API(...) 데코레이터가 적용된 함수를 호출하는 여러 가지 방법을 제공합니다:
| 실행 기능 | 특징 | 적용 시나리오 |
|---|---|---|
| 동기 실행 함수 API | 동기 HTTP API를 생성합니다. 호출 후 처리 결과를 직접 반환합니다 | 처리 시간이 짧고 클라이언트가 즉시 결과를 얻어야 하는 경우 |
| 비동기 실행 함수 API | 비동기 HTTP API를 생성합니다. 호출 후 즉시 응답하지만 처리 결과는 반환하지 않습니다 | 처리 시간이 길고 인터페이스 호출이 시작 신호로만 사용되는 시나리오 |
| 예약 작업 | Crontab 문법을 기반으로 자동 실행 | 정기 동기화 / 캐시 데이터, 예약 작업 등의 경우 |
자세한 내용은 스크립트 개발 / 기본 개념을 참조하세요.
여기에서 이 함수를 위한 함수 API를 생성하면, 공인망에서 HTTP를 통해 이 함수를 호출할 수 있습니다.
이 함수를 위해 생성한 함수 API ID가 func-api-xxxxx라고 가정하면, 이 함수를 호출하는 가장 간단한 방법은 다음과 같습니다.
| Text Only | |
|---|---|
1 | |
응답은 다음과 같습니다(일부 내용 생략).
| Text Only | |
|---|---|
1 2 3 4 | |
3. 파일 업로드를 지원하는 함수 작성
DataFlux Func는 함수 API를 통한 파일 업로드도 지원합니다.
업로드된 파일을 처리해야 하는 경우 함수에 files 매개변수를 추가하여 업로드된 파일 정보를 받을 수 있습니다.
파일이 업로드되면 DataFlux Func는 자동으로 파일을 임시 업로드 디렉터리에 저장하여 스크립트가 후속 처리를 할 수 있게 합니다.
| 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
files 매개변수는 DataFlux Func 시스템에 의해 자동으로 채워지며 내용은 다음과 같습니다.
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
파일 업로드 예시 명령은 스크립트 개발 / 기본 개념 / 함수 API / POST 간편 전달을 참조하세요.
4. JSON, Form이 아닌 데이터 수신
1.6.9 버전에서 추가됨
어떤 경우에는 요청이 제3자 시스템이나 애플리케이션에 의해 고유한 형식으로 전송될 수 있으며, 요청 본문이 JSON 또는 Form 형식이 아닌 경우 **data를 입력 매개변수로 사용하고 POST 간편 형식으로 호출할 수 있습니다.
시스템은 텍스트 또는 파싱할 수 없는 데이터를 수신하면 자동으로 { "text": "<텍스트>" } 또는 { "base64": "<Base64 형식의 이진 데이터>"}로 패킹하여 함수에 전달합니다.
예시 코드는 다음과 같습니다.
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
요청 본문이 텍스트인 경우
요청은 다음과 같습니다.
| Bash | |
|---|---|
1 | |
출력은 다음과 같습니다.
| Text Only | |
|---|---|
1 | |
요청 본문이 알 수 없는 형식인 경우
요청은 다음과 같습니다.
| Bash | |
|---|---|
1 | |
출력은 다음과 같습니다.
| Text Only | |
|---|---|
1 | |