Script Development / Writing and Calling Functions
This document is the most basic guide to developing scripts on DataFlux Func. After reading it, you can perform basic development and usage on DataFlux Func.
1. Before You Start
When using DataFlux Func,
please do not log in to the same account with multiple people, and do not edit the same code simultaneously.
This is to avoid code overwriting or loss caused by conflicting edits.
2. Write and Call Your First Function
Writing code in DataFlux Func is not much different from writing Python code normally.
For functions that need to be exported as APIs, add the built-in @DFF.API(...) decorator.
The function's return value is the return value of the API. When the return value is a dict or list, the system automatically returns it as JSON.
A typical function is as follows:
| Python | |
|---|---|
1 2 3 4 5 6 | |
The DataFlux Func platform provides multiple ways to call functions decorated with DFF.API(...):
| Execution Feature | Characteristics | Applicable Scenarios |
|---|---|---|
| Synchronous Function API | Generates a synchronous HTTP API. Returns the processing result directly after the call | Scenarios where processing time is short and the client needs to obtain the result immediately |
| Asynchronous Function API | Generates an asynchronous HTTP API. Responds immediately after the call, but does not return the processing result | Scenarios where processing takes a long time and the API call is only used as a startup signal |
| Scheduled Task | Executes automatically based on Crontab syntax | Periodic data synchronization / caching, scheduled tasks, and other scenarios |
For details, see Script Development / Basic Concepts
Here, create a function API for this function to call it over the public network through HTTP.
Assume that the ID of the "Function API" created for this function is func-api-xxxxx. The simplest way to call this function is as follows:
| Text Only | |
|---|---|
1 | |
The response is as follows, with some content omitted:
| Text Only | |
|---|---|
1 2 3 4 | |
3. Write a Function That Supports File Uploads
DataFlux Func also supports uploading files through Function APIs.
When uploaded files need to be processed, you can add a files parameter to the function to receive the uploaded file information.
After a file is uploaded, DataFlux Func automatically stores it in a temporary upload directory for subsequent processing by the script.
| Example | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
The files parameter is automatically populated by the DataFlux Func system as follows:
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
For an example command to upload a file, see Script Development / Basic Concepts / Function API / Simplified POST Parameters
4. Receive Non-JSON and Non-Form Data
Added in version 1.6.9
In some cases, a request may be sent by a third-party system or application in its own specific format, and the request body may not be in JSON or Form format. In this case, you can use **data as the input parameter and call the function using the simplified POST format.
When the system receives text or data that cannot be parsed, it automatically packages it as { "text": "<text>" } or { "base64": "<binary data in Base64 format>"} and passes it to the function.
The sample code is as follows:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
When the Request Body Is Text
The request is as follows:
| Bash | |
|---|---|
1 | |
The output is as follows:
| Text Only | |
|---|---|
1 | |
When the Request Body Has an Unknown Format
The request is as follows:
| Bash | |
|---|---|
1 | |
The output is as follows:
| Text Only | |
|---|---|
1 | |