Scope
indicates which functions-framework has already support this item.
OpenFunction/functions-framework-go -> ff-go
Example:
{
"name": "function",
"version": "v1",
"requestID": "a0f2ad8d-5062-4812-91e9-95416489fb01",
"port": "50002",
"clientPort": "44538",
"inputs": {},
"outputs": {},
"runtime": "Async",
"state": "",
"prePlugins": [],
"postPlugins": [],
"pluginsTracing": {
"enable": true,
"provider": {
"name": "skywalking",
"oapServer": "localhost:xxx"
},
"tags": {
"key": "value"
},
"baggage": {
"key": "value"
}
},
"out": {
"code": 200,
"data": "",
"error": "",
"metadata": {}
}
}
Specification:
Key | Type | Description | Scope | example |
---|---|---|---|---|
name | string, require | Function name. | ff-go | "myfunction", "hello-func" |
version | string, require | Function version. | ff-go | "v1", "v2" |
requestID | string | Request ID, uuid format. | ff-go | "a0f2ad8d-5062-4812-91e9-95416489fb01" |
port | string | Function serving port. | ff-go | "50003" |
clientPort | string | Dapr client port. (default is "50001" in Kubernetes mode) | ff-go | "50001" |
inputs | map | Function input from bindings data. A map of Input objects. The key is the name of input and the value is input object, see Input. Empty means no input. |
ff-go | |
outputs | map | Function output to bindings data. A map of Output objects. The key is the name of output and the value is output object, see Output. Empty means no output. |
ff-go | |
runtime | enum, require | Function serving runtime, see Runtime. | ff-go | "Knative", "Async" |
state | string | Used to store the states of the function in operation. | ||
out | map | Outputs after the function is run, see Out. | ff-go | |
prePlugins | array | List of names of plugins executed before the user function. | ff-go | ["plg1", "plg2"] |
postPlugins | array | List of names of plugins executed after the user function. | ff-go | ["plg1", "plg2"] |
pluginsTracing | map | Configuration of the tracing plugins, see PluginsTracing. | ff-go |
Example:
{
"my-input": {
"uri": "my-uri",
"componentName": "my-component",
"componentType": "bindings.kafka",
"metadata": {
"Content-Type": "application/json; charset=utf-8"
}
}
}
Specification:
Key | Type | Description | Scope | example |
---|---|---|---|---|
name(key) | string | Input name. | ff-go | "demo-kafka", "cron-job" |
uri | string | Input serving listening path. This indicates the destination of the input data. Bindings: same as the component's name, can be omitted. Pubsub: represent the topic's name, cannot be omitted. |
ff-go | "echo" |
componentType | string | Input type. When using Async as runtime, you need to set the type (refer to Input Type) parameter. |
ff-go | "bindings.kafka" |
componentName | string | The component's name. | ff-go | "componentA" |
metadata | map | The metadata to be passed to dapr for use. Usage can be found in dapr's documentation. | ff-go |
Effective only when using Async as runtime.
Value | Description | Scope |
---|---|---|
bindings.* | Indicates that the input is the Dapr bindings component. Refer to Bindings API reference to learn more about Dapr bindings components. | ff-go |
pubsub.* | Indicates that the input is the Dapr pubsub component. Refer to Pub/sub API reference to learn more about Dapr bindings components. ❗Note that when using pubsub as input, the name of pubsub's topic should be assigned to the input's uri. |
ff-go |
Examples:
{
"my-output": {
"uri": "my-uri",
"componentName": "my-component",
"componentType": "bindings.kafka",
"operation": "post"
}
}
Specification:
Key | Type | Description | Scope | example |
---|---|---|---|---|
name(key) | string | Output name. | ff-go | "demo-kafka", "cron-job" |
uri | string | Output serving listening path. This indicates the destination of the output data. Bindings: same as the component's name, can be omitted. Pubsub: represent the topic's name, cannot be omitted. |
ff-go | "echo" |
componentType | string | Output type. When using Async as runtime, you need to set the type (refer to Output Type) parameter. |
ff-go | "bindings.kafka" |
componentName | string | The component's name. | ff-go | "componentA" |
metadata | map | The metadata to be passed to dapr for use. Usage can be found in dapr's documentation. | ff-go | |
operation | string | The operation's name. Usage can be found in dapr's documentation. | ff-go | "post", "create" |
Value | Description | Scope |
---|---|---|
bindings.* | Indicates that the output is the Dapr bindings component. Refer to Bindings API reference to learn more about Dapr bindings components. | ff-go |
pubsub.* | Indicates that the output is the Dapr pubsub component. Refer to Pub/sub API reference to learn more about Dapr bindings components. ❗Note that when using pubsub as output, the name of pubsub's topic should be assigned to the output's uri. |
ff-go |
We currently support Knative
and Async
serving runtime.
Value | Description | Scope |
---|---|---|
Knative | Serving function with Knative runtime (based on Knative). | ff-go |
Async | Serving function with Async runtime (based on KEDA+Dapr). | ff-go |
Key | Type | Description | Scope | example |
---|---|---|---|---|
code | int | Return code of the function. | ff-go | 200, 500 |
data | string | The data returned by the function. | ff-go | "some data" |
error | string | The error information returned by the function. | ff-go | "some error" |
metadata | map | The metadata returned by the function. | ff-go | {"key": "value"} |
Key | Type | Description | Scope | example |
---|---|---|---|---|
enable | bool | Whether to enable tracing capability. | ff-go | true, false |
provider | map | Configuration of tracing capability provider, see TracingProvider | ff-go | |
tags | map | Tags for tracing. | ff-go | {"func": "function-with-tracing"} |
baggage | map | Baggage for tracing. | ff-go | {"key": "sw8-correlation"} |
Key | Type | Description | Scope | example |
---|---|---|---|---|
name | string | The name of the provider (if the tracing capability is enabled, this name will be automatically inserted into the list of plugin names) | ff-go | "skywalking" |
oapServer | string | The oap server address. | ff-go | "localhost:xxx" |