通过函数计算的Custom Runtime,您可以使用Go在函数计算平台编写函数。本文介绍快速部署和调用Go函数的详细步骤。您可以修改Go示例中的代码,实现您的需求。

前提条件

您已完成以下操作:

操作步骤

  1. 执行以下命令克隆示例工程到本地。
    git clone https://github.com/awesome-fc/fc-custom-demo          
    说明 如果您没有安装Git,可以直接在浏览器地址栏输入 https://github.com/awesome-fc/fc-custom-demo,然后单击下载按钮直接下载示例代码。
  2. 可选:修改go-demo目录中的示例代码,实现您的业务逻辑。
  3. 执行以下命令进入克隆的示例项目中。
    1. 执行以下命令进入fc-custom-demo目录。
      cd fc-custom-demo
    2. 执行以下命令进入go-demo目录。
      cd go-demo
  4. 执行以下命令部署函数。
    make deploy
    预期输出。
    docker build -t fc-go-runtime  -f build-image/Dockerfile build-image
    Sending build context to Docker daemon  3.072kB
    Step 1/5 : FROM golang:1.12.16-stretch
     ---> 7ad03a8aece5
    ...
    Step 5/5 : RUN go get github.com/awesome-fc/golang-runtime
     ---> Using cache
     ---> 262e7f38ac05
    Successfully built 262e7f38ac05
    Successfully tagged fc-go-runtime:latest
    docker run -it -v $(pwd):/tmp fc-go-runtime bash -c "go build -o /tmp/code//bootstrap /tmp/code/main.go"
    chmod +x code/bootstrap
    fun deploy -y
    using template: template.yml
    ···
    Waiting for service go_demo to be deployed...
            Waiting for function fc_go to be deployed...
                    Waiting for packaging function fc_go code...
                    The function fc_go has been packaged. A total of 1 file were compressed and the final size was 3.76 MB
            function fc_go deploy success
    service go_demo deploy success
  5. 执行以下命令调用部署的函数。
    fun invoke -e "Hello World"
    说明 如果您使用的是Windows操作系统,则需将 bootstrap文件格式修改为UNIX格式。
    预期输出。
    ...
    ========= FC invoke Logs begin =========
    FC Invoke Start RequestId: 4c1451b2-f29b-4554-87e5-126f3bc11fcf
    2020-04-07T02:53:01.981Z: 4c1451b2-f29b-4554-87e5-126f3bc11fcf [INFO]  hello golang!
    FC Invoke End RequestId: 4c1451b2-f29b-4554-87e5-126f3bc11fcf
    
    Duration: 1.03 ms, Billed Duration: 100 ms, Memory Size: 512 MB, Max Memory Used: 4.39 MB
    ========= FC invoke Logs end =========
    
    FC Invoke Result:
    Hello World

更多信息

如果您需将Go应用框架一键迁移到函数计算,请参见以下文档: