GitHub Actions を使用して、CI/CD 作業の一部として ARM テンプレートをデプロイする

完了

GitHub Actions は、現在の市場でチームの機敏性と競争力を高めるのに役立ちます。 これらは、システム開発またはソリューションの開発ライフサイクルのタスクを自動化するのに役立ちます。

あなたとあなたのチームが、Azure 環境内で大量のリソースを必要とするソリューションを開発しているとしましょう。 ソリューションを確実に継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインの一部として迅速かつ自動的にデプロイできるようにする必要があります。 そうすることで、プロジェクトのインフラストラクチャの作成と破棄を自動化できます。 お使いの CI/CD パイプラインにリソース管理を含めて、IT タスクを自動化するためのコードとしてのインフラストラクチャ (IaC) を導入します。

適切な CI/CD パイプラインを使用すると、Azure Resource Manager (ARM) テンプレート テスト ツールキット (略して arm-ttk) などのツールを使用して、テスト手順をデプロイ タスクの中に含めることもできます。 このツールキットの詳細については、what-if とテスト ツールキットを使用したデプロイの検証に関するページを参照してください。

作成に集中できるようにパイプラインにテストを含めることをお勧めします。 問題を回避するために、arm-ttk ツールキットにより、テンプレートを検証するための一連のテストがデプロイ中に実行されます。

これらの目標を達成するためにいくつかのツールを利用することができます。 既にコードのリポジトリに GitHub を使用しているため、GitHub Actions を調べて、必要な自動化が提供されるかどうかを確認することにします。

このモジュールでは、ARM テンプレートをデプロイする方法として GitHub Actions を紹介します。

GitHub Actions とは

GitHub Actions は、GitHub の開発ワークフローでタスクを自動化するためのパッケージ化されたスクリプトです。

GitHub Actions を使用すると、ARM テンプレートが保存されている GitHub リポジトリに、ソフトウェア開発ライフサイクルのカスタム ワークフローを直接作成できます。 ワークフローは、YAML ファイルで定義されます。

ワークフローには、1 つ以上のジョブがあり、 各ジョブには、個々のタスクを実行する一連のステップが含まれています。 ステップでは、コマンドを実行したり、アクションを使用したりできます。 独自のアクションを作成するか、または GitHub コミュニティで共有されているアクションを使用し、必要に応じてカスタマイズすることができます。

ARM テンプレートをデプロイするための基本的なワークフローには、少なくとも次の 3 つの手順があります。

  1. テンプレート ファイルをチェックアウトします。
  2. Azure にサインインします。
  3. テンプレートをデプロイします。

Azure サインイン アクションでは、サービス プリンシパルを使用して Azure に対する認証を行います。 Azure リソースをデプロイする CI/CD ワークフローのプリンシパルには、適切な組み込みの共同作成者が必要です。