スポンサーリンク
Azure

PythonによるAzureリソース管理入門:コードでリソースグループを作成する方法

Azure
この記事は約6分で読めます。

本記事では、Pythonを使用してAzureのリソースグループを作成するスクリプトを題材に、Infrastructure as Code (IaC) の基本的な考え方とそのメリットについて解説します。Azure Portal(GUI)での手動操作から、コードベースの管理へ移行する第一歩としてご活用ください。

なぜコードでリソースを管理するのか

Azure Portalでの操作は直感的ですが、手作業にはいくつかの課題が伴います。インフラ構成をコードで管理することにより、以下のようなメリットがあります。

1. 再現性が確保できる

手動での環境構築では、人的ミスや設定の差異が生じる可能性があります。コード化された構成は、誰が実行しても同じ結果を保証するため、開発、ステージング、本番といった複数環境の一貫性を維持しやすくなります。

2. 効率化と自動化

リソースの作成や削除といった定型作業をスクリプトで実行することで、作業時間を短縮できます。また、CI/CDパイプラインに組み込むことで、インフラのプロビジョニングを自動化し、デプロイプロセス全体の効率を向上させることが可能です。

3. 構成のバージョン管理

インフラ構成をコードとしてGitなどのバージョン管理システムで管理することで、変更履歴を正確に追跡できます。「いつ、誰が、何を」変更したかが明確になり、チームでのレビューを通じて構成の妥当性を検証することも容易になります。

Pythonによるリソースグループ作成の実装

以下に、リソースグループを作成するPythonスクリプトを示します。リソースグループは、関連するAzureリソースを格納するための論理的なコンテナです。

対象のコード:Python

# リソースグループの作成
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from dotenv import load_dotenv

def main():
    # --- 基本設定 ---
    # 環境変数から設定を読み込み
    try:
        load_dotenv()
        subscription_id = os.getenv("AZURE_SUBSCRIPTION_ID")
        if not subscription_id:
            raise KeyError
    except KeyError:
        print("エラー: 環境変数 AZURE_SUBSCRIPTION_ID が設定されていません。")
        return

    resource_group_name = os.getenv("AZURE_RESOURCE_GROUP_NAME", "default-rg")
    location = "japaneast"

    # --- 認証とクライアントの初期化 ---
    # Azure CLIの認証情報を利用
    credential = AzureCliCredential()

    # リソース管理クライアントの作成
    resource_client = ResourceManagementClient(credential, subscription_id)

    # --- リソースグループの作成 ---
    print(f"'{resource_group_name}' リソースグループを作成または更新します...")
    try:
        rg_result = resource_client.resource_groups.create_or_update(
            resource_group_name, {"location": location}
        )
        print(f"リソースグループ '{rg_result.name}' の準備が完了しました。")
    except Exception as e:
        print(f"エラーが発生しました: {e}")

if __name__ == "__main__":
    main()

事前準備

スクリプトの実行の前提条件は以下の通りです。

  • Python環境: Pythonがインストールされていること。
  • ライブラリのインストール: ターミナルで以下のコマンドを実行します。
pip install azure-identity azure-mgmt-resource python-dotenv
  • Azure CLI: 公式ドキュメントを参考にインストールし、az login コマンドでサインインしておきます。
  • .env ファイル: スクリプトと同じディレクトリに .env ファイルを作成し、以下の形式で情報を記述します。設定を外部ファイルに分離することで、コード内に認証情報などを直接記述することを避けられます。
#.env
#サブスクリプションID
AZURE_SUBSCRIPTION_ID = '<サブスクリプションID>'
#リソースグループ
AZURE_RESOURCE_GROUP_NAME= '<登録したいリソースグループ>'

コード解説

  • ライブラリのインポート
    • azure.identity.AzureCliCredential: az login でサインインしたユーザーの認証情報を利用します。
    • azure.mgmt.resource.ResourceManagementClient: リソースグループなどの管理操作を行うためのクライアントです。
    • dotenv: .env ファイルから環境変数を読み込むために使用します。
  • 基本設定 .env ファイルからサブスクリプションIDとリソースグループ名を読み込みます。これらの情報はAzure上の操作対象を特定するために不可欠です。リソースを作成する地理的な場所(リージョン)もここで定義します。

  • 認証とクライアントの初期化 AzureCliCredential で取得した認証情報とサブスクリプションIDを使い、ResourceManagementClient のインスタンスを生成します。このクライアントオブジェクトを通じて、Azure Resource Manager APIを操作します。

  • リソースグループの作成 resource_client.resource_groups.create_or_update メソッドが中心的な処理を担います。
    • 第1引数: 作成するリソースグループの名前。
    • 第2引数: リージョン(location)など、リソースのプロパティを辞書形式で指定します。

まとめ

Pythonスクリプトを用いてAzureのリソースグループを作成する手順を通じて、コードによるインフラ管理の基本的なアプローチを紹介しました。

コード化は、再現性の確保作業の効率化構成のバージョン管理といったメリットをもたらします。GUIでの操作に慣れた次のステップとして、このようなコードベースでのリソース管理手法を検討することは、クラウド運用の品質向上に繋がります。

コメント

タイトルとURLをコピーしました