iron

よくLambdaIronが比較されていますが、後者のほうを使ってみました。

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を組み合わせることで色々と出来そうです。