name:deploy to lambdaon:[push]jobs:deploy_zip:name:deploy lambda function from zipruns-on:ubuntu-lateststrategy:matrix:go-version:[1.15.x]steps:- name:checkout source codeuses:actions/checkout@v1- name:Install Gouses:actions/setup-go@v1with:go-version:${{ matrix.go-version }}- name:Build binaryrun:| cd example && GOOS=linux go build -v -a -o main main.go && zip deployment.zip main- name:deploy zipuses:appleboy/lambda-action@v0.0.8with:aws_access_key_id:${{ secrets.AWS_ACCESS_KEY_ID }}aws_secret_access_key:${{ secrets.AWS_SECRET_ACCESS_KEY }}aws_region:${{ secrets.AWS_REGION }}function_name:gorushzip_file:example/deployment.zipdebug:true
首先第一個步驟就是編譯 Binary 接著打包成 zip 檔案後,才可以進行部署,接著在 Plugin 寫上 function name 跟 zip 檔案路徑就可以直接更新到 AWS Lambda 了。
---kind:pipelinename:testingplatform:os:linuxarch:amd64steps:- name:buildimage:golang:1.15commands:- apt-get update && apt-get -y install zip- cd example && GOOS=linux go build -v -a -o main main.go && zip deployment.zip main- name:deploy-lambdaimage:appleboy/drone-lambdasettings:pull:trueaws_access_key_id:from_secret:AWS_ACCESS_KEY_IDaws_secret_access_key:from_secret:AWS_SECRET_ACCESS_KEYaws_region:from_secret:AWS_REGIONfunction_name:gorushzip_file:example/deployment.zipdebug:true
寫法跟 GitHub Actions 非常類似,因為在同一個 Piepline,所以可以在第一個步驟產生出來的 zip 檔案,也可以在第二個步驟部署。
GitLab CI
其實 GitLab CI 已經有寫一篇完整的教學,裡面用的是 Server less 框架來部署程式碼,所以開發者還需要看一下怎麼使用此框架,相對來說比較難上手,那底下來介紹用 drone-lambda 方式來進行部署。