apache/openserverless-runtime-go本镜像为 Apache OpenServerless(孵化中)项目官方提供的 Apache OpenWhisk GO 运行时环境,用于在 OpenWhisk 无服务器平台上部署和执行 Go 语言编写的函数。它封装了 Go 运行时环境及 OpenWhisk 函数执行框架,确保 Go 函数与 OpenWhisk 平台的无缝集成。
官方镜像可通过 Docker Hub 获取(假设镜像名称为 apache/openwhisk-runtime-go,具体以项目发布为准):
bashdocker pull apache/openwhisk-runtime-go:latest
镜像通过环境变量进行配置,关键参数如下:
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
ACTION_NAME | Go 函数入口名称(函数导出函数) | main | 自定义函数名(如 Handle) |
GO_VERSION | Go 运行时版本 | 1.20 | 1.18/1.19/1.20 等 |
LOG_LEVEL | 日志级别 | info | debug/info/warn/error |
EXECUTION_TIMEOUT | 函数执行超时时间(毫秒) | 30000(30秒) | 1000 |
MEMORY_LIMIT | 函数内存限制(MB) | 256 | 64~1024 |
适用于本地测试 Go 函数执行(需提前准备编译好的 Go 函数二进制文件,放置于 /action 目录):
bashdocker run -d \ --name openwhisk-go-runtime \ -p 8080:8080 \ -v /path/to/your/go/function:/action \ # 挂载本地 Go 函数目录 -e ACTION_NAME=Handle \ # 函数入口名称 -e LOG_LEVEL=debug \ # 调试日志级别 -e EXECUTION_TIMEOUT=60000 \ # 超时 60 秒 apache/openwhisk-runtime-go:latest
说明:容器启动后,可通过 http://localhost:8080/run 发送 POST 请求触发函数执行,请求体需符合 OpenWhisk 事件格式(如 {"value": {"key": "value"}})。
在 OpenWhisk 平台上部署 Go 函数时,需指定本运行时镜像。通过 wsk 命令行工具创建动作:
bashwsk action create my-go-action /path/to/function.go \ --docker apache/openwhisk-runtime-go:latest \ # 指定运行时镜像 --param key value \ # 函数参数 --timeout 60000 # 超时时间(毫秒)
触发函数执行:
bashwsk action invoke my-go-action --result
适用于本地模拟 OpenWhisk 环境,与其他服务(如 Kafka 事件源)联动:
yamlversion: '3.8' services: openwhisk-go-runtime: image: apache/openwhisk-runtime-go:latest ports: - "8080:8080" volumes: - ./my-go-function:/action # 挂载本地 Go 函数目录 environment: - ACTION_NAME=ProcessEvent - LOG_LEVEL=info - EXECUTION_TIMEOUT=45000 networks: - openwhisk-network # 可选:添加 Kafka 事件源(示例) kafka: image: confluentinc/cp-kafka:7.3.0 ports: - "9092:9092" environment: - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 networks: - openwhisk-network networks: openwhisk-network: driver: bridge
启动服务:
bashdocker-compose up -d
GOOS=linux GOARCH=amd64 go build -o /action/exec)docker run


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务