Azure Resource Manager の概要

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

Infrastructure as Code の概要

  • IaC はクラウドの設計図として捉えることができる
  • 日々の手順書ではなく、全体設計を定義するもの
  • コードはアプリ内部ではなく、以下を定義するために使用
    • アプリを構成するサービス
    • 各サービスの設定内容

コードとしてのインフラ

Azure API Management

IaC デプロイ

  • IaC コードを実行すると、環境全体をデプロイ可能
  • 各サービスを手動で設定する必要なし
  • デプロイが迅速・反復可能・エラーの少ない形に

IaC デプロイ

Azure API Management

ARM テンプレートの概要

  • Azure で IaC を実現する方法は複数ある
  • ARM テンプレートは代表的な手法
  • JSON をベースに構成
  • 環境をまたいで一貫したリソースのデプロイが可能
  • 反復性と自動化を実現

オートメーション メニュー セクション

Azure API Management

ARM テンプレートの作成

ARM テンプレートのエクスポート

  • 既存のサービスからテンプレートを作成可能

    • 建物の設計図を複製するイメージ
  • Azure Portal での手順:

    • APIM インスタンスを開き、[オートメーション スクリプト] または [テンプレートのエクスポート] ブレードへ
    • ポータルが現在の設定(設定値・API・ポリシー・接続)を収集
    • JSON ファイルとパラメーター ファイルをダウンロード可能
  • 設定を変更・名前変更して再デプロイ

Azure API Management

ARM テンプレートの構造

  • ARM テンプレートは特定の構造に従った JSON
  • 環境の設計図として捉えると理解しやすい

  • resources セクション = 主要な設計図

    • ビルドするリソースを列挙(例:APIM サービス・API・製品・ポリシー)
    • 各リソースにはタイプ・API バージョン・プロパティが含まれる
  • 他のセクションでリソース以上の柔軟性を付加

ARM テンプレートの構造

Azure API Management

ARM テンプレートのパラメーターと変数

ARM テンプレートのパラメーターと変数

  • パラメーターはフォームの空欄のようなもの

    • デプロイ時に入力(APIM 名・場所・SKU・発行元情報)
  • 変数はメモ帳のようなもの

    • テンプレートを整理するための補助的な計算値
    • 例:環境名の結合・リソース ID の生成・重複の排除
    • テンプレートの可読性と安全な変更を向上
Azure API Management

ARM テンプレートの出力

  • 出力はオプション
  • デプロイ後に受け取るレシートのようなもの
  • ゲートウェイ URL やリソース ID などの有用な値を提供
  • デプロイ チェーン内の他のスクリプトでこれらの値を利用可能

ARM テンプレートの出力

Azure API Management

では、練習しましょう!

Azure API Management

Preparing Video For Download...