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.
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.
fun --versionto check whether the installation is successful.
fun configto 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-demoNote If you do not have git installed, enter https://github.com/awesome-fc/fc-custom-demo in the address bar of your browser. Click the download button to download directly.
- 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:
make deployThe 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