Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Azure Functions on AWS

$
0
0

これは Serverless2 Advent Calendar 2018 の 4 日目の記事です。

qiita.com

前日は miyake さんによる Serverlessconf Tokyo で Durable Functions にコントリビュートしました | PaaSがかりの部屋でした。

本文

先日、Azure Functions を Docker を使って Docker イメージにパッケージングしました。

blog.okazuki.jp

Advent Calendar も、空白があるようなので折角なので、今回は AWS の Amazon ECS にデプロイしてみようと思います。

とりあえず手動 docker pushがだるかった(and 何故か自宅からやると凄く重かった)ので、以下のような azure-pipelines.ymlを書いて Azure DevOps (旧 Visual Studio Team Services) で docker builddocker pushをしてもらうようにしました。 とりあえず現在のビルド ID をタグにしたイメージと、同じものを latest タグに突っ込むようにしたけどいいのかな。

pool:vmImage:'Ubuntu 16.04'variables:imageName:'$(dockerId)/serverless2018:$(build.buildId)'latestImageName:'$(dockerId)/serverless2018:latest'steps:- script: |
    docker build -f Dockerfile -t $(imageName) .
    docker tag $(imageName) $(latestImageName)
  displayName:'docker build'- script: |
    docker login -u $(dockerId) -p $(pswd)
    docker push $(imageName)
    docker push $(latestImageName)
  displayName:'docker push'

変数部分は、別途変数用の設定画面でさくっと設定してビルド設定をしておきます。このビルドを走らせると以下のようにさくっと docker pushされました。 (自宅で何時間放置しても終わらなかったのに…)

Docker は初心者なのでよくわかってないのですが Tags ってところに作られてるから大丈夫なのかな。

f:id:okazuki:20181204111539p:plain

デプロイ to AWS

はじめて、ちゃんと開いた AWS のコンソールで ECS を探します。こんな感じに入力して更新

f:id:okazuki:20181204111947p:plain

タスク定義はそのままで、ロードバランサーは Application Load Balancer を選びました。あとは Yes マンです。 知らないクラウドの、いったい今何が作られてるんだろう…という不安感はたまらないですね(後で全部ちゃんと消せるんだろうか)

f:id:okazuki:20181204112208p:plain

作成されたロードバランサーを見ると凄く長い URL が生成されてます。そこに向けて curl コマンドを叩くと…。

>curl http://ec2co-ecsel-1g11swshqzpgu-1462563513.us-west-2.elb.amazonaws.com/api/Echo?message=Hello
You said 'Hello'

動いた!!

まとめ

まだプレビュー段階ですが Azure Functions の Docker サポートを使うと AWS で Azure Functions を動かすことも出来ますね!やったね。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>