Azure API CenterでGitHub ActionsからAPIを自動登録する方法と更新ポイント

Azure API Center の「Register APIs with GitHub Actions」は、GitHub リポジトリに追加・更新された API 定義ファイルをきっかけに、Azure API Center へ API 情報を自動登録するための CI/CD 構成です。結論から言うと、これは既存 API の通信経路や Azure API Management のランタイム設定を変える機能ではありません。API カタログ登録を手作業から GitHub Actions ベースの標準プロセスに移し、API の棚卸し、バージョン管理、ガバナンスを継続的に整えるための仕組みです。

2026年6月時点で公式情報を確認する際の重要点は、該当手順の本体は GitHub Actions による登録自動化の解説であり、強制移行や廃止期限を伴う変更ではないことです。Microsoft Learn のページでは、API 定義ファイルが GitHub リポジトリに追加されたときに API Center へ登録するワークフローを説明しており、GitHub 側の履歴では 2026年6月25日に著者情報更新が入っているものの、登録手順そのものを破壊的に変更する内容ではありません。(Microsoft Learn)

目次

Azure API Center と GitHub Actions 連携で何ができるのか

Azure API Center は、組織内の API を一元的に把握し、発見、再利用、ガバナンスに役立てるためのサービスです。Azure API Management のように API トラフィックを中継・制御するランタイムゲートウェイではなく、設計時点や管理時点の API インベントリを整備する役割を持ちます。(Microsoft Learn)

今回の「Register APIs with GitHub Actions」は、この API インベントリ登録を CI/CD に組み込むための実装例です。開発者が OpenAPI などの API 定義ファイルをリポジトリへ追加し、プルリクエストが main ブランチへマージされると、GitHub Actions が Azure CLI を実行して API Center に登録します。(Microsoft Learn)

手作業で API Center に登録する場合、登録漏れ、命名ゆれ、バージョンの追跡漏れが起きやすくなります。GitHub Actions で登録を自動化すると、「API 定義を Git に入れる」「レビューする」「マージ後にカタログへ反映する」という流れを一本化できます。

観点手作業登録GitHub Actions による自動登録
登録タイミング担当者の作業に依存PR マージなどのイベントで実行
登録漏れ起きやすいワークフローで抑制しやすい
監査性作業記録が分散しやすいGit の履歴と Actions の実行履歴に残る
バージョン管理ファイル管理と登録情報がずれやすいAPI 定義ファイルを起点にそろえやすい
ガバナンス後追いになりやすいメタデータ付与や検証処理を組み込みやすい

今回の更新ポイントで管理者が押さえるべきこと

今回の公式情報で実務上重要なのは、「新しい Azure リソースをデプロイする機能」ではなく、「API Center の登録作業を開発プロセスへ組み込む方法」が整理されている点です。

既存 API の稼働には直接影響しない

この手順で変更されるのは、主に API Center 上のインベントリ情報です。API のエンドポイント、バックエンド、Azure API Management のポリシー、認証方式、クライアントアプリの接続先が自動的に変わるわけではありません。

そのため、影響範囲は次のように考えると分かりやすいです。

対象影響
Azure API CenterAPI、バージョン、定義、デプロイ情報の登録に影響
GitHub リポジトリAPI 定義ファイルの配置ルールと Actions ワークフローに影響
Microsoft Entra IDGitHub Actions から Azure へ認証するための ID 設定に影響
Azure API Management直接の設定変更は不要。API Center と役割が異なる
既存 API 利用者通信経路が変わらなければ直接影響なし
運用管理者登録ルール、権限、監査、失敗時対応の整備が必要

API Center のデータモデルでは、API、API バージョン、API 定義、デプロイ、環境、メタデータが主要な管理対象です。CI/CD で登録する場合も、この構造を意識してリポジトリ構成を決めることが重要です。(Microsoft Learn)

az apic api register は Preview 扱い

公式の Azure CLI リファレンスでは、az apic api register は API 仕様ファイルを信頼できるソースとして、API、バージョン、定義、関連デプロイを登録するコマンドとして説明されています。ただし、このコマンドは Preview とされており、現時点では OpenAPI の JSON/YAML 形式がサポート対象です。(Microsoft Learn)

ここは運用上かなり重要です。Preview コマンドは本番運用で使えないという意味ではありませんが、将来の仕様変更に備えて、次の対策を入れておくべきです。

確認項目実務での対応
CLI 拡張機能apic-extension のバージョンと更新履歴を確認する
対応仕様OpenAPI JSON/YAML を前提にする
ワークフロー本番反映前に検証用 API Center でテストする
障害時Actions のログと Azure 側の登録状況を確認できる運用にする
変更耐性CLI コマンドの実行部分を共通スクリプト化し、差し替えやすくする

認証はサービスプリンシパルより OIDC を優先検討する

公式手順では、説明を分かりやすくするために Microsoft Entra ID のサービスプリンシパルを作成し、その資格情報を GitHub Secrets に AZURE_CREDENTIALS として保存する流れが示されています。一方で、GitHub Actions から Azure へ認証する方法としては、短命トークンを使う OpenID Connect が推奨されています。(Microsoft Learn)

本番環境では、長期的なクライアントシークレットを GitHub Secrets に保存するより、OIDC とフェデレーション資格情報を使う構成を優先して検討してください。特にグローバル企業や複数チームで API 登録を自動化する場合、シークレットの棚卸し、期限管理、漏えい時の影響範囲が大きくなります。

認証方式向いているケース注意点
サービスプリンシパル+シークレット検証、短期 PoC、公式手順を素早く試す場合シークレット期限、漏えい、ローテーションが課題
OIDC本番運用、複数リポジトリ、セキュリティ要件が高い環境初期設定はやや複雑だが、長期シークレットを減らせる
手動ログイン一時確認CI/CD 自動化には不向き

設定変更の全体像

GitHub Actions で Azure API Center に API を登録するには、Azure 側、GitHub 側、API 定義ファイル側の3つを整える必要があります。

Azure 側で必要な準備

まず、Azure サブスクリプション内に API Center が必要です。さらに、GitHub Actions から API Center に登録できる ID を用意します。

公式手順の例では、API Center のリソース ID を取得し、そのスコープに対して Azure API Center Service Contributor ロールを付与したサービスプリンシパルを作成します。(Microsoft Learn)

apiCenter=<api-center-name>
resourceGroup=<resource-group-name>
spName=<service-principal-name>

apicResourceId=$(az apic show \
  --name $apiCenter \
  --resource-group $resourceGroup \
  --query "id" \
  --output tsv)

az ad sp create-for-rbac \
  --name $spName \
  --role "Azure API Center Service Contributor" \
  --scopes $apicResourceId \
  --json-auth

実務では、サブスクリプション全体やリソースグループ全体ではなく、可能な限り API Center リソース単位にスコープを絞るのが安全です。API 登録のためだけに過剰な権限を与えると、GitHub Actions の侵害時に影響範囲が広がります。

GitHub 側で必要な準備

GitHub リポジトリでは、主に次の設定を行います。

設定内容
Repository secretsAzure 認証情報を保存する。公式例では AZURE_CREDENTIALS
Repository variablesAPI Center 名やリソースグループ名を保存する。例: SERVICE_NAME、RESOURCE_GROUP
Workflow file/.github/workflows/ 配下に YAML ファイルを配置
API 定義ファイルの配置例として APIs/**/*.json のようなパスを使う
ブランチ保護main への直接 push を防ぎ、PR レビュー後に登録させる

公式サンプルでは、pull_request の closed イベントを使い、APIs 配下の JSON 定義ファイルが追加された PR を main ブランチにマージした後に登録する構成が示されています。(Microsoft Learn)

ただし、GitHub Actions の pull_request の closed は「マージされた場合」と「マージされずにクローズされた場合」の両方で発火します。GitHub 公式ドキュメントでも、マージ時だけ実行するには github.event.pull_request.merged == true の条件を使う例が示されています。(GitHub Docs)

本番運用では、次のようにジョブ条件を加えると誤登録を防ぎやすくなります。

on:
  pull_request:
    types: [closed]
    branches:
      - main
    paths:
      - "APIs/**/*.json"

jobs:
  register:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read

この条件を入れないと、レビュー中止や誤作成された PR を単にクローズしただけでも、ワークフローの一部が動く可能性があります。API カタログは組織の公式台帳として扱われるため、「マージされたものだけを登録する」制御は必須に近いと考えてください。

API 定義ファイル側で必要な準備

az apic api register を使う場合、API 仕様ファイルが登録の起点になります。CLI リファレンスでは、ローカルの仕様ファイルだけでなく URL を指定する例も示されていますが、CI/CD で監査性を高めるなら、リポジトリ内に API 定義ファイルを置く設計が扱いやすいです。(Microsoft Learn)

おすすめの配置例は次のとおりです。

APIs/
  payment-api/
    openapi.yaml
    metadata.json
  customer-api/
    openapi.yaml
    metadata.json

日付だけをファイル名にするより、API 名、バージョン、ライフサイクルを識別できる構成にしたほうが、後から探しやすくなります。たとえば、payment-api/v1/openapi.yaml、payment-api/v2/openapi.yaml のようにバージョン単位で分けると、API Center のバージョン管理とも対応しやすくなります。

移行期限はあるのか

今回の公式情報からは、既存の API Center 登録方法を廃止する移行期限や、手動登録から GitHub Actions への強制移行は確認できません。あくまで、API 登録を自動化するための推奨的な実装パターンとして理解するのが適切です。

ただし、管理者は「期限がないから対応不要」と考えるべきではありません。API 数が増えるほど、手作業登録では台帳の鮮度が落ちます。特にマイクロサービス、社内 API、外部公開 API、検証用 API が混在する組織では、登録ルールを CI/CD に寄せたほうが運用負荷を下げられます。

導入優先度は、次の基準で判断するとよいでしょう。

状況優先度理由
API 定義を Git で管理している高既存の開発フローに組み込みやすい
API Center を導入済みだが登録が手作業高登録漏れと更新漏れを減らせる
API Management と API Center を併用している中〜高ランタイム管理とカタログ管理を分離しやすい
API 数が少なく PoC 段階中早めに標準形を作ると後で楽になる
API 定義ファイルが存在しない低〜中まず OpenAPI などの定義整備が先

グローバル環境での影響範囲

グローバル向けに Azure API Center を使う場合、最初に確認すべきなのはリージョン、権限、リポジトリ運用、API 定義の標準化です。Azure API Center は利用可能リージョンが限定されるため、データ所在や管理拠点の方針に合わせて配置を検討する必要があります。(Microsoft Learn)

また、Free プランと Standard プランでは上限や機能範囲が異なります。たとえば API 数、バージョン数、分析数、メタデータ数などに差があります。企業利用や本番運用では、登録自動化だけでなく、API Center のプラン上限もあわせて確認してください。(Microsoft Learn)

グローバル組織では、次のような設計が現実的です。

設計項目推奨方針
API Center の配置主な管理組織、データ所在、利用可能リージョンを基準に決める
リポジトリ単位チームごとに分ける場合も、API 定義フォルダ構造は共通化する
メタデータowner、businessUnit、lifecycle、dataClassification などを標準化する
権限登録用 ID は API Center に必要な範囲だけ付与する
監査PR、Actions 実行履歴、API Center 登録結果を紐づける
例外運用手動登録を許す場合は、理由と承認者を残す

よくある失敗と回避策

PR を閉じただけで登録処理が動く

pull_request の closed だけを条件にすると、マージされていない PR でもワークフローが起動します。API Center に登録するジョブには、if: github.event.pull_request.merged == true を入れてください。

1つの PR に複数の API 定義ファイルを入れて失敗する

公式サンプルでは、PR に含まれる仕様ファイルが1つであることを前提にした処理が示されています。実務では、1 PR 1 API 定義にルール化するか、複数ファイルをループ処理できるスクリプトに拡張する必要があります。

たとえば、複数 API を一括登録したいチームでは、APIs/**/openapi.yaml を検索して順番に az apic api register を実行する設計にします。一方、監査性を重視するなら「1 PR で1 API または1バージョンのみ」をルールにしたほうがレビューしやすくなります。

API 定義の検証を登録後にしてしまう

API Center への登録前に、OpenAPI の構文チェックや lint を実行してください。壊れた定義ファイルを登録対象にすると、Actions の失敗原因が分かりにくくなります。

理想的な流れは次の順序です。

| 順序 | 処理 |
| -: | ———————- |
| 1 | OpenAPI ファイルの構文検証 |
| 2 | 命名規則、タグ、セキュリティ定義の lint |
| 3 | 必須メタデータの存在確認 |
| 4 | API Center への登録 |
| 5 | 登録結果の確認と通知 |

Azure API Center には API 定義の品質や標準準拠を支援する分析・linting の機能もあります。登録自動化だけでなく、API 品質のチェックをどこに組み込むかをあわせて設計すると効果が高まります。(Microsoft Learn)

シークレットを長期間放置する

サービスプリンシパルのシークレットを使う場合、期限切れや漏えい時の対応が必要です。検証段階ではシークレット方式でもよいですが、本番では OIDC への移行を検討してください。

OIDC を使う場合は、GitHub Actions 側に id-token: write 権限を付与し、Azure 側でフェデレーション資格情報を構成します。これにより、長期シークレットを保存せずに Azure へログインできます。(Microsoft Learn)

API Center と API Management の役割を混同する

API Center は API の発見、再利用、ガバナンスのためのカタログです。API Management は、API の公開、保護、ポリシー適用、監視などランタイム制御を担います。API Center に登録しただけで API が公開されるわけではありません。逆に、API Management で公開済みの API でも、API Center に登録されていなければ組織の API 台帳から見えにくくなります。

両者を組み合わせる場合は、次の役割分担にすると整理しやすくなります。

サービス主な役割
Azure API CenterAPI の台帳、定義、バージョン、メタデータ、発見、設計時ガバナンス
Azure API ManagementAPI ゲートウェイ、認証、レート制限、ポリシー、開発者ポータル、監視
GitHub ActionsAPI 定義の検証、登録、メタデータ更新、通知の自動化

管理者が確認すべきチェックリスト

導入前に、次の項目を確認してください。

チェック項目確認内容
API Center の有無対象サブスクリプションとリージョンに API Center があるか
権限設計登録用 ID に最小権限だけを付与しているか
認証方式PoC はシークレット、本番は OIDC を検討しているか
リポジトリ構成API 定義ファイルの配置ルールが決まっているか
PR ルールmain への直接 push を禁止し、レビュー後にマージする運用か
ワークフロー条件マージ済み PR のみ登録される条件を入れているか
API 定義形式OpenAPI JSON/YAML を前提にしているか
メタデータ所有者、ライフサイクル、公開範囲、データ分類を管理できるか
CLI 依存apic-extension と Preview コマンドの変更に備えているか
監視Actions 失敗時の通知先と復旧手順があるか

特に重要なのは、API Center を「後から更新する台帳」ではなく、「開発プロセスの中で自然に更新される台帳」に変えることです。API 定義が Git に入り、レビューされ、マージ後に自動登録される流れを作れば、API ガバナンスは現場の開発フローと対立しにくくなります。

導入手順のおすすめ順序

最初から全 API を対象にする必要はありません。まずは1つのチーム、1つの API、1つのリポジトリで小さく始めるのが安全です。

フェーズ実施内容
準備API Center、権限、リポジトリ、API 定義ファイルの現状を確認
PoCサービスプリンシパル方式で公式手順を検証
改善PR マージ条件、lint、メタデータ付与を追加
セキュリティ強化OIDC 化、権限スコープ見直し、GitHub Environment 保護
展開他チームへテンプレート化して展開
運用CLI 更新、登録失敗、メタデータ品質を定期確認

この順序なら、公式サンプルをそのまま写すだけで終わらず、自社の開発ルールやセキュリティ要件に合わせて無理なく定着させられます。

まとめ:API 登録を「人の作業」から「開発フローの一部」に変える

「Register APIs with GitHub Actions – Azure API Center」の本質は、API Center への登録を自動化し、API カタログを常に開発実態に近づけることです。既存 API の通信や API Management のランタイム設定を直接変更するものではなく、API 定義ファイルを起点に、登録、バージョン管理、メタデータ管理を継続的に回すための仕組みと考えると理解しやすくなります。

管理者が次に取るべき行動は、まず対象リポジトリを1つ選び、API 定義ファイルの配置ルール、GitHub Actions の発火条件、Azure への認証方式、登録後の確認方法を決めることです。PoC では公式手順に沿って動作確認し、本番展開では OIDC、最小権限、PR マージ条件、lint、メタデータ標準化を加えてください。これにより、Azure API Center を単なる台帳ではなく、組織の API ガバナンスを支える実用的な基盤として使いやすくなります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次