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

阿里函数计算中我的是go项目 通过阿里云fc应用部署 go项目运行后报错是为什么?

阿里函数计算中我的是go项目 通过阿里云fc应用部署 go项目运行后的命令是 /code/main -env=dev
然后我在s.yaml function中添加了
customRuntimeConfig:
command:

        - '/code/main'
      args: 
        - '-env'
        - 'dev'

然后部署就失败了 是为什么?

展开
收起
小小鹿鹿鹿 2023-11-21 22:34:09 42 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在阿里云函数计算中,对于自定义的运行时配置,需要在serverless.yml文件中指定相应的命令和参数,具体如下:

    service: my-service
    
    provider:
      name: aliyun
      runtime: custom
      region: cn-hangzhou
    
    functions:
      helloWorld:
        handler: ./main # 指定入口文件
        runtime: go1.x # 指定运行时
        timeout: 30 # 设置超时时间,默认单位为秒
        memorySize: 128 # 设置内存大小,MB为单位,范围为128-3072MB
        environment:
          env: dev # 指定环境变量
        customRuntimeConfig:
          command:
            - './main' # 指定运行命令
          args: 
            - '-env' # 指定命令行参数
            - 'dev' # 指定命令行参数值
    

    其中,./main表示指定运行的主程序文件路径,而不是实际的可执行文件路径。如果你希望指定的是实际的可执行文件路径,应该使用/code/main
    另外,在指定命令行参数和参数值时,需要使用单引号('')包裹起来,避免混淆和出错。

    2023-11-22 14:29:12
    赞同 展开评论 打赏
  • 根据您提供的信息,部署失败的原因可能是以下几点:

    1. 阿里云函数计算的自定义运行时配置(customRuntimeConfig)中的command字段应该包含可执行文件的路径和命令参数。在您的示例中,/code/main是可执行文件的路径,-env=dev是命令参数。请确保这些值是正确的。

    2. 确保您的Go项目已经正确编译并生成了可执行文件。您可以使用以下命令来编译Go项目:

      go build -o /code/main
      

      这将在/code目录下生成一个名为main的可执行文件。

    3. 检查您的s.yaml文件中的其他配置是否正确。例如,确保function部分的handler字段与您的Go项目中的入口点匹配。

    2023-11-22 11:41:19
    赞同 展开评论 打赏
  • 这个写法有误,这么写试试=-env=dev 这么写哈 别拆开。-env=dev 这么写哈 别拆开。此回答来自钉群阿里函数计算官网客户。

    2023-11-22 08:21:16
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Go语言路上踩过的坑 立即下载
    gohbase :HBase go客户端 立即下载
    Go构建日请求千亿级微服务实践 立即下载