はじめに
AWS App Runnerは、Bitbucketリポジトリからのデプロイができるようになりました。
App Runner には、アプリケーションをデプロイするための2つの方法が用意されています。
事前に構築されたECRにあるコンテナイメージ使用してサービスをデプロイする方法と、ソースリポジトリのコードを使用してサービスをデプロイする方法です。
従来、後者の方法では、Githubリポジトリのみサポートされていましたが、Bitbucketリポジトリも利用できるようになりました。
前提条件
Bitbucketリポジトリを作成し、ソースコードは、下記の2ファイルを保存します。
requirements.txt
Click==7.0
Flask==1.0.2
itsdangerous==1.1.0
Jinja2==2.10
MarkupSafe==1.1.1
Werkzeug==0.15.5
server.py
from flask import Flask
import os
PORT = 8080
name = os.environ['NAME']
if name == None or len(name) == 0:
name = "world"
MESSAGE = "Hello, " + name + "!"
print("Message: '" + MESSAGE + "'")
app = Flask(__name__)
@app.route("/")
def root():
print("Handling web request. Returning message.")
result = MESSAGE.encode("utf-8")
return result
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=PORT)
下記のドキュメントを参考に検証しました。
Bitbucketリポジトリからデプロイしてみた
App Runnerのサービス作成画面から、[ソースコードリポジトリ]を選択すると、Bitbucket
が指定できるようになっていますので、選択します。
[新規追加]をクリックすると、Bitbucketのログイン画面がでますので、ログインします。
[アクセスを許可する]をクリックします
[別のアプリケーションをインストール]します。
[アクセスを許可する]することで、BitbucketとAWSが連携できるようになります。
BitbucketのWorkSpace内のリポジトリとブランチが表示されましたので、選択します。
構築設定では、以下の通りに入力します。
- ランタイム
Python 3
- 構築コマンド
pip install -r requirements.txt
requirements.txt
に記載したをパッケージを指定のバージョンで一括インストールします
- 開始コマンド
python server.py
- Webサーバの起動をしています
- ポート
8080
server.py
に環境変数を入れる箇所がありますので、App Runner側で環境変数を入れます
- ソース
- プレーンテキスト
- 環境変数名
- NAME
- 環境変数の値
- hirai
他はデフォルトのままでサービスを作成します。
デプロイが成功しました。
デフォルトドメインにアクセスすると、下記のサイトが確認できました。
一時停止や削除も簡単です。一時停止すると、料金はかかりません。
最後に
今回のアップデートでは、Bitbucketリポジトリからのデプロイができるようになりました。
私自身App Runnerは、初めて触ったのですが、ECSに比べて、簡単にデプロイできると実感しました。
GithubではなくBitbucketを利用しているユーザーにとっては、App Runnerを利用するキッカケになるアップデートですね。
参考になれば幸いです