iron
よくLambdaとIronが比較されていますが、後者のほうを使ってみました。
Free Planはアカウント作成から15日間になります。
基本的には、Iron CLIをインストールして、Dockerでテストして、アップロードするという流れ。
$ mkdir -p iron/test
$ cd !$
$ curl -sSL https://cli.iron.io/install | sh
$ echo '
package main
import "fmt"
func main() {
fmt.Println("Hello from IronWorker!
")
}' >> hello_worker.go
# test
$ docker run --rm -it -v "$PWD":/go/src/x/y/z -w /go/src/x/y/z -e "GOPATH=/go/src/x/y/z/vendor:/go" iron/go go build -o hello_worker
...
$ docker run --rm -it -v "$PWD":/app -w /app iron/go ./hello_worker
# upload
$ zip -r hello_worker.zip .
$ iron worker upload --zip hello_worker.zip --name hello_worker iron/go ./hello_worker
仮にここまでをWorkerの作成とします。
そして、先ほど作成したWorkerをQueue(キュー)に追加します。Queueはスケジュールタスクになります。
$ iron worker queue --wait hello_worker
これとCIを組み合わせることで色々と出来そうです。