[アップデート]AWS App Runnerは、Bitbucketリポジトリからサービスをデプロイできるようになりました

2023.08.31

はじめに

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を利用するキッカケになるアップデートですね。

参考になれば幸いです

参考