cognite/function-action该容器用于将Python函数部署到Cognite Functions,并支持可选的调度配置。适用于自动化部署流程,可集成到CI/CD管道中。Azure Pipelines示例仓库:[***]
所有参数通过执行python /app/index.py时设置为环境变量。
INPUT_FUNCTION_EXTERNAL_ID: 函数的external_id,项目内需唯一,若已存在则覆盖现有函数INPUT_FUNCTION_FOLDER: 函数代码的父文件夹,该文件夹内所有内容将被上传INPUT_CDF_PROJECT: CDF项目名称INPUT_CDF_CLUSTER: CDF项目所在集群,如westeurope-1或greenfieldINPUT_DEPLOYMENT_CLIENT_SECRET: 用于函数部署的客户端密钥INPUT_DEPLOYMENT_CLIENT_ID: 用于函数部署的客户端IDINPUT_DEPLOYMENT_TENANT_ID: 用于函数部署的租户IDINPUT_SCHEDULE_FILE: 位于function_folder内的调度文件路径,包含要附加到函数的调度列表。若文件存在,则以下参数为必填:INPUT_SCHEDULES_CLIENT_SECRET: 函数调度运行时使用的客户端密钥(仅用于调度执行,正常调用仍使用调用者凭证)INPUT_SCHEDULES_CLIENT_ID: 函数调度运行时使用的客户端IDINPUT_SCHEDULES_TENANT_ID: 函数调度运行时使用的租户ID所有可选参数的默认值可在src/defaults.py中查看:
INPUT_REMOVE_ONLY: 仅删除函数及所有附加调度,忽略其他大部分参数INPUT_COMMON_FOLDER: 包含函数间共享代码的文件夹路径INPUT_FUNCTION_FILE: 主函数文件名称,默认为handler.pyINPUT_FUNCTION_SECRETS: 存储base64编码的JSON密钥字典的Github密钥名称INPUT_FUNCTION_DEPLOY_TIMEOUT: 函数部署超时时间(秒),超时后将取消部署并尝试删除函数INPUT_DATA_SET_ID: 用于CDF中上传文件(函数代码压缩包)的数据集ID,需额外部署权限:'dataset:READ'和'files:WRITE'(作用于指定数据集或'all');若数据集为写保护,还需'dataset:OWNER'权限INPUT_POST_DEPLOY_CLEANUP: 部署成功后删除CDF Files中的代码文件对象,默认为trueINPUT_DESCRIPTION: 函数描述信息INPUT_OWNER: 函数所有者信息INPUT_CPU: 每个函数的CPU核心数(小数),Azure环境下忽略,允许值见API文档INPUT_MEMORY: 每个函数的内存大小(GB),Azure环境下忽略,允许值见API文档.yaml]调度文件需为YAML格式,示例如下:
yaml- name: 每日调度 cron: "0 0 * * *" data: lovely-parameter: True something-else: 42 - name: 每小时调度 cron: "0 * * * *" data: lovely-parameter: False something-else: 777 - name: 每小时调度 # 允许同名调度,也允许无data字段 cron: "0 * * * *"
bashdocker run -e INPUT_FUNCTION_EXTERNAL_ID="my-function" \ -e INPUT_FUNCTION_FOLDER="/app/function" \ -e INPUT_CDF_PROJECT="my-cdf-project" \ -e INPUT_CDF_CLUSTER="westeurope-1" \ -e INPUT_DEPLOYMENT_CLIENT_SECRET="deploy-secret" \ -e INPUT_DEPLOYMENT_CLIENT_ID="deploy-id" \ -e INPUT_DEPLOYMENT_TENANT_ID="deploy-tenant" \ -v /local/function/folder:/app/function \ cognite/functions-deploy:latest
bashdocker run -e INPUT_FUNCTION_EXTERNAL_ID="scheduled-function" \ -e INPUT_FUNCTION_FOLDER="/app/function" \ -e INPUT_CDF_PROJECT="my-cdf-project" \ -e INPUT_CDF_CLUSTER="westeurope-1" \ -e INPUT_DEPLOYMENT_CLIENT_SECRET="deploy-secret" \ -e INPUT_DEPLOYMENT_CLIENT_ID="deploy-id" \ -e INPUT_DEPLOYMENT_TENANT_ID="deploy-tenant" \ -e INPUT_SCHEDULE_FILE="schedules.yaml" \ -e INPUT_SCHEDULES_CLIENT_SECRET="schedule-secret" \ -e INPUT_SCHEDULES_CLIENT_ID="schedule-id" \ -e INPUT_SCHEDULES_TENANT_ID="schedule-tenant" \ -v /local/function/folder:/app/function \ cognite/functions-deploy:latest


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