开发者社区 > 云原生 > Serverless > 正文

函数计算这个问题怎么解决?

函数计算这个问题怎么解决?InvalidArgument: code: 400, customRuntimeConfig not supported for non-custom runtime
customRuntimeConfig:
port: 9000
command:

      - nginx
      - '-c'
      - /code/nginx.conf
      - '-g'
      - daemon off;

展开
收起
三分钟热度的鱼 2024-05-29 19:25:09 39 0
1 条回答
写回答
取消 提交回答
  • 根据您提供的错误信息InvalidArgument: code: 400, customRuntimeConfig not supported for non-custom runtime,以及您配置的customRuntimeConfig部分,可以看出问题在于您尝试为非自定义运行时函数设置了customRuntimeConfig。在阿里云函数计算(Function Compute,简称FC)中,customRuntimeConfig选项仅适用于自定义运行时(Custom Runtime),而不适用于预置的运行时环境,比如Node.js、Python等。
    您配置的customRuntimeConfig看起来是为了运行Nginx服务而设置的,这通常意味着您可能想要在一个自定义的环境中运行,而非FC预置的标准运行时环境。
    解决办法如下:

    修改运行时类型:首先,您需要将函数的运行时类型更改为custom。在函数计算的配置中,确保您的函数运行时设置为custom或custom_xxx(例如custom.debian10),这样才支持自定义运行时配置。
    YAML 示例配置更新:
    service:
    name: your-service-name
    其他配置...
    function:
    handler: index.handler
    runtime: custom.debian10 # 或者其他的自定义运行时
    customRuntimeConfig: # 自定义运行时配置
    port: 9000
    command:

    • nginx
    • '-c'
    • /code/nginx.conf
    • '-g'
    • daemon off;

    创建或使用自定义镜像:对于自定义运行时,您可能还需要上传一个包含了必要依赖(如Nginx)的自定义镜像,或者使用社区中已经存在的镜像。确保这个镜像包含了您在customRuntimeConfig中指定的命令所需的所有组件。

    部署更新:使用Serverless Devs工具或直接通过控制台部署您的服务,确保所有配置已正确应用。

    注意:

    确保在调整运行时类型后,您的代码与新的运行时环境兼容。
    使用自定义运行时可能会增加维护成本和复杂度,确保理解并准备好了相应的资源和知识。
    如果您实际上不需要自定义运行时,而只是想在函数内部使用Nginx等服务,可能需要重新考虑您的架构设计,或者探索是否有预置运行时内的解决方案(比如使用Node.js的Express框架模拟简单的HTTP代理)。

    请按照上述步骤调整您的配置并重新部署,应该可以解决您遇到的错误。 此回答整理自钉群“阿里函数计算客户【已满,加2群:64970014484】”

    2024-05-29 21:35:19
    赞同 1 展开评论 打赏

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载