You can deploy a Go project to Function Compute quickly by using the Custom Runtime
of Function Compute. This topic describes how to quickly deploy and call a Go function.
Prerequisites
You have completed the following operations:
Step 1: Prepare the environment
An easy and simple way to install Funcraft is to download the executable binary files.
- Install Funcraft on the local machine. For more information, see installation instructions.
- Run
fun --version
to check whether the installation is successful.
- Run
fun config
to configure Funcraft. Then configure Account ID, Access Key ID, Access Key Secret, and Default region name as prompted.
$ fun config
Aliyun Account ID 1234xxx
Aliyun Access Key ID xxxx
Aliyun Access Key Secret xxxx
Default region name cn-xxxx
The timeout in seconds for each SDK client invoking 300
The maximum number of retries for each SDK client 5
Allow to anonynously report usage statistics to improve the tool over time? (Y/n)
Step 2: Deploy and call a function
- Run the following command to clone the sample project to your local machine.
git clone https:// github.com/awesome-fc/fc-custom-demo
- Run the following command to access the cloned sample project:
cd fc-custom-demo
cd go-demo
- Run the following command to deploy the function:
The following result is returned:
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
- Run the following command to call the deployed function:
fun invoke -e "Hello World"
The following result is returned:
...
========= 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