• 3 min read

GitHub Actions を使用して好みのツールから Azure にデプロイする

企業やチームでの DevOps テクノロジ採用が進んでいます。これに人とプロセスを組み合わせて、コードの質を高め、リリース サイクルを短縮し、価値を継続的にデリバリーすることによって、その組織自身の顧客の満足度向上を目指しています。

企業やチームでの DevOps テクノロジ採用が進んでいます。これに人とプロセスを組み合わせて、コードの質を高め、リリース サイクルを短縮し、価値を継続的にデリバリーすることによって、その組織自身の顧客の満足度向上を目指しています。

しかし、CI/CD パイプラインを作り上げるのが難しいこともよくあります。開発したコードをクラウド自動化ワークフローに組み込むには、いくつもの YAML を編集する必要があるからです。チームはかなりの時間と労力を費やして、何種類ものツールをセットアップし、そのツールを切り替えながら日々の開発サイクルを進めています。

11 月に Azure 向け GitHub Actions の一般提供を開始し、GitHub にあるアプリのコードをリポジトリから直接 Azure にデプロイする処理を自動化できるようになりました。さらに、Microsoft Build 2020 で発表したとおり、Azure 向け GitHub Actions は Visual Studio Code、Azure CLI、Azure Portal に統合されているため、開発者の好みのエントリ ポイントから Azure にデプロイするときのエクスペリエンスがシンプルになります。新しい Visual Studio Code 拡張機能をダウンロードするか、GitHub Actions 用の Azure コマンド ライン インターフェイス (CLI) 拡張機能をインストールしてください。

Azure 向け GitHub Actions でどのエンタープライズ アプリケーションもデプロイ可能に

GitHub Actions を利用すると、自動化されたソフトウェア開発ライフサイクル ワークフローを柔軟に構築できます。開発チームがビルド、テスト、パッケージ化、リリース、および Azure へのデプロイを行うためのワークフローを簡単に作成できるように、30 件を超える Azure 向け GitHub Actions のアクションが GitHub Marketplace で公開されており、その他のアクションも今後数か月でのロールアウトが予定されています。

これらのアクションを利用すると、Azure のさまざまなサービス、つまり Web アプリケーションからサーバーレス関数や Kubernetes に至るまで、さらには Azure SQL や MySQL のデータベースへのデプロイが可能になります。

Azure ログイン アクションもサポートされているので、これを汎用ステップの 1 つとしてスクリプト処理を行うことができます。つまり、Azure の幅広いリソースに対して Azure CLI や Azure PowerShell を使用した処理ができるようになります。さまざまなユーティリティ アクション、たとえば Azure Key Vault や App Service 設定なども公開されており、開発者が DevOps のすべてのベスト プラクティスに従いながら Azure をターゲットとして複雑なエンタープライズ アプリケーションをデプロイするのに役立ちます。サンプル アプリケーション Rock, Paper, Scissors, Lizard, Spock をぜひご覧ください。この多言語アプリケーションは Visual Studio と Visual Studio Code で作成されており、GitHub Actions を使用してデプロイされ、Azure Kubernetes Service (AKS) 上で実行されます。

Azure 向けの Actions の使用を簡単に開始する

アプリをデプロイするための多数のスターター テンプレートが公開されています。.NET、Node.js、Java、PHP、Ruby、Python など、一般的な言語とフレームワークで作成されたアプリをコンテナーにデプロイすることも、任意のオペレーティング システム上で実行することもできます。初めての Web アプリケーションをデプロイするエクスペリエンスをシンプルにするために、サンプルのリポジトリも含まれており、次の 4 つの簡単なステップで開始することができます。

  1. サンプル リポジトリをフォークします (たとえば Python のサンプル)。
  2. readme ファイルの中の [Deploy to Azure] をクリックして Azure Web アプリを作成します。
  3. 必要な GitHub リポジトリ シークレットを構成します。
  4. ワークフローの YAML を更新して Web アプリの構成を反映し、変更をコミットします。

これらのステップを行うと CI/CD ワークフローがトリガーされ、アプリのビルドとデプロイが GitHub Actions を使用して行われます。

 Python パッケージをデプロイする

Action ワークフローを Visual Studio Code、Azure Portal、または Azure CLI から作成する

現在では、何百万人もの開発者が Visual Studio Code を使用し、Azure をターゲットとしています。同様に、Azure Portal を使用する開発者も何百万人もいます。私たちは、Azure の開発者の皆様が今どこにいるかにかかわらず、私たちの開発ツールをお使いいただくときのエンドツーエンドの開発者エクスペリエンスを最高のものにしたいと考えています。このたび発表する、Actions のための新しい統合から生まれたさまざまなツール拡張機能により、GitHub Actions を使用した Azure へのデプロイが、開発者の好みのツールから簡単にできるようになります。これは、GitHub Actions に慣れるための時間を大幅に短縮するとともに、頻繁なコンテキスト切り替えが不要になり、開発チームがお気に入りのツールで組み込みの拡張機能を使用して生産性を向上させることができます。本日発表するのは、次の 3 つの新しいツール統合です。

  • Azure Portal では、GitHub Actions がビルド プロバイダーの 1 つとして App Service デプロイ センターと Azure Kubernetes Service に追加されており、GitHub Actions を使用する CI/CD ワークフローのセットアップが簡単になりました。
      Azure Portal のデプロイ センター
  • Visual Studio Code の "Azure に配置する" 拡張機能は、Azure App Service または Azure Kubernetes Service のための継続的ビルドとデプロイのセットアップを、エディターを離れずに行うのに役立ちます。

VS Code の "Azure に配置する" 拡張機能

  • Azure CLI 拡張機能をインストールするには、コマンド az extension add --name deploy-to-azure を実行します。Azure Kubernetes Service と Azure Container Instance へのデプロイは、コマンド az aks app upaz container app up でサポートされます。

Azure CLI 拡張機能

これらのツール統合を使用すると、自動生成された CI/CD ワークフローをセットアップできます。このワークフローはあらゆる部分をカスタマイズ可能であり、コード プッシュのたびにトリガーされます。YAML ファイルの中にはビルドとリリースのステップがあらかじめ記述されており、必要に応じて編集できます。ワークフローを作成するときに、Azure と GitHub リポジトリに関連する構成がすべてセットアップされるので、この 2 つのシステムをどのようにつなぐかを開発者が心配する必要はありません。

ご利用ください 

開始するには、スターター テンプレートとドキュメント (Deploy to Azure CLI 拡張機能Visual Studio Code 拡張機能Azure 向け GitHub Actions) をご利用ください。これらの機能に対する変更などのご提案がある場合は、フィードバックとしてお聞かせください。それぞれの GitHub リポジトリへのコントリビューションも歓迎しています。pull request をお待ちしています! 特定のアクションで問題が発生した場合は、アクション リポジトリでイシューをオープンすることもできます。

詳細情報