Azure Static Web Appsをセルフホスト型のエージェントやランナーでビルド・デプロイしたい

このエントリは2025/04/12現在の情報によるものです。将来の機能追加や変更に伴い、記載事項からの乖離が発生する可能性があります。

問い合わせ

お初の方から以下のような問い合わせが届いた。

現在Static Web Apps (SWA) に静的Webアプリをデプロイしようとしている。管理者によるセキュリティ設定のせいで、現在セルフホスト型のエージェントやランナーを使うしかないのだが、どうにもうまくいかない。どうしたらよいか?

なんとも雑な問い合わせだったので、もう少し確認してみた。

  • Azure Pipelinesを利用
  • Webアプリ自体はシンプルなHTMLで構成されている(一部JavaScriptがある)
  • ローカルからSWA CLIによるデプロイは可能
  • “AzureStaticWebApp@0″というタスクを利用 (SWA CLIをエージェントで実行してはいない)
  • self-hosted agentはWindowsに構成

「あれね」と思った方もいらっしゃるかもしれない。

原因

ドキュメントにも記載のある通り、AzureStaticWebApp@0 はLinux agentでのみ動作する。そのため、self-hosted agentもLinuxである必要がある。

Remarks (AzureStaticWebApp@0 – Azure Static Web App v0 タスクをデプロイする / AzureStaticWebApp@0 – Deploy Azure Static Web App v0 task)
https://learn.microsoft.com/azure/devops/pipelines/tasks/reference/azure-static-web-app-v0?view=azure-pipelines#remarks

とはいえ、Linuxであればよいので、VM、VMSS、WSLなどでself-hosted agentを構築すればOK。実際にはコンテナー実行環境が必要なので、Dockerとか、Rancherとか、Podmanとかを仕込んでおく必要はある。

GitHub Actionsだったらどうなのか?

GitHub ActionsだとAzure/static-web-apps-deploy@v1 で構成されることが多いが、これもWindowsのランナーでは利用できない。実際に実行してみるとわかるが、Container actionはLinuxでのみサポートされていることが理由。なので、これもまたDockerとかRancherとかPodmanとかをself-hosted runnerに準備しておく必要がある。

では全くWindows環境では実行できないのか?

SWA CLIを使ったデプロイであれば、WindowsでもLinuxでも実行できるので、WindowsランナーやWindowsエージェントで実行すること自体は可能。とはいえ、OS固有の機能が必須でない限り、あえてお財布に優しくないエージェントやランナーを使う理由はないはず(知らんけど)。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください