[アップデート] AWS App Runner で作成に失敗したサービスの設定更新とリビルドが出来るようになりました

2023.07.02

いわさです。

アップデートで AWS App Runner で失敗したサービスの設定更新&リビルドが出来るようになりました。

これまでは構成設定などの誤りで作成に失敗したサービスは、設定変更して実行し直すことは出来ず、削除して作成し直す必要がありました。
公式ドキュメント上も失敗したサービスの対処方法は次のようにアナウンスされていました。

  • アプリケーションコード、ビルドプロセス、または構成に問題がある場合や、リソースクォータに達したために、または基礎となるAWSサービスを使用する必要があります。障害のトラブルシューティングを行うには、次の操作を実行することをお勧めします。まず、サービスイベントとログを読み取り、障害の原因を調べます。次に、コードまたは設定に必要な変更を加えます。最後に、サービスクォータに達した場合は、1 つ以上のサービスを削除します。その後、これらの手順をすべて完了したら、サービスを再度作成してみてください。
  • 失敗したサービスは使用できません。最初の作成の試行を超えて、追加の料金は発生しません。ただし、App Runner は失敗したサービスを自動的に削除せず、サービスのクォータにカウントされます。障害の分析が完了したら、失敗したサービスを必ず削除してください。

今回のアップデートに併せて次のドキュメントが追加されています。
ざっくりいうと、失敗したサービスは削除ではなく、正しい設定に変更し直してリビルドが出来ますよと紹介されています。

やってみた

今回は次の記事で使ってリポジトリのコードを使って App Runner サービスを構築してみます。

まずは起動コマンドや環境変数に意図的に正しくない値を設定してみます。
当然ながら次のようにサービス作成に失敗します。

トラブルシューティングをしてみましょう。
コンソールからデプロイ時の実行ログを確認してみます。

構築あるいは起動コマンドに何かしら誤りがありそうですね。
構築コマンドを見直してみると、dotnet publishと指定すべきところをdotnet publosjと指定してしまっていました。
また、環境変数で許可する URL も指定していませんでした。

設定画面の「編集」からそのまま構成パラメータの編集が出来ます。
正しい値に編集します。

値を変更すると、編集画面の右側に変更後の値のプレビューと、リビルド実行のためのボタンが表示されていました。
設定変更した内容を保存し、そのままリビルド出来るようですね。これは良いな。

保存してリビルドを実行してみました。
次のように作成失敗したサービスの更新が開始されました。

しばらくすると更新が正常終了し、ステータスが Running となりました。
サービスドメインへアクセスしてみると Web アプリケーションに正常にアクセスすることが出来ました。

サービスをいちいち削除せずに、設定変更してそのまま正常なサービスに更新することが出来ました。素晴らしい。

さいごに

本日は AWS App Runner で作成に失敗したサービスの設定更新とリビルドが出来るようになったので使ってみました。

今回使用したリポジトリを作成した記事の時もそうだったのですが、特に初期構築の際にトライ&エラーで設定値を調整する際に何度もサービスを削除して面倒だった記憶がありますが、これは地味にありがたいですね。