Azure Stack Hub の Node.js ソフトウェア開発キット (SDK) で API バージョン プロファイルを使用する

Node.js と API バージョンのプロファイル

Node.js SDK を使用して、アプリのインフラストラクチャのビルドと管理を行うことができます。 Node.js SDK の API プロファイルは、グローバルな Azure リソースと Azure Stack Hub リソースを切り替えできることによって、ハイブリッド クラウド ソリューションに役立ちます。 コードを 1 回記述すれば、グローバル Azure と Azure Stack Hub の両方をターゲットにすることができます。

この記事では、開発ツールとして Visual Studio Code を使用できます。 Visual Studio Code では、Node.js SDK をデバッグし、アプリを実行して Azure Stack Hub インスタンスにアプリをプッシュできます。 Visual Studio Code またはコマンド node <nodefile.js> を実行してターミナル ウィンドウからデバッグできます。

Node.js SDK

Node.js SDK には、Azure Stack Hub Resource Manager ツールが用意されています。 SDK のリソース プロバイダーには、コンピューティング、ネットワーク、ストレージ、アプリ サービス、および KeyVault が含まれます。 Node.js アプリケーションにインストールできる 10 個のリソース プロバイダー クライアント ライブラリがあります。 アプリケーションのメモリを最適化するために、2020-09-01-profile に使用するリソース プロバイダーを指定してダウンロードすることもできます。 各モジュールは、リソース プロバイダー、それぞれの API バージョン、API プロファイルで構成されます。

API プロファイルは、リソース プロバイダーと API バージョンを組み合わせたものです。 API プロファイルを使用すると、リソース プロバイダーのパッケージに含まれる各リソースの種類の、最も安定した最新バージョンを取得できます。

  • すべてのサービスの最新バージョンを使用するには、パッケージの latest プロファイルを使用します。

  • Azure Stack Hub と互換性のあるサービスを使用するには、@azure/arm-resources-profile-hybrid-2020-09-01 または @azure/arm-storage-profile-2020-09-01-hybrid を使用します。

NPM パッケージ

各リソース プロバイダーには独自のパッケージがあります。 パッケージは、npm レジストリから取得できます。

次のパッケージを見つけることができます。

リソース プロバイダー Package
App Service @azure/arm-resources-profile-2020-09-01-hybrid
Azure Resource Manager サブスクリプション @azure/arm-subscriptions-profile-hybrid-2020-09-01
Azure Resource Manager ポリシー @azure/arm-policy-profile-hybrid-2020-09-01
Azure Resource Manager DNS @azure/arm-dns-profile-2020-09-01-hybrid
承認 @azure/arm-authorization-profile-2020-09-01-hybrid
Compute @azure/arm-compute-profile-2020-09-01-hybrid
Storage @azure/arm-storage-profile-2020-09-01-hybrid
Network @azure/arm-network-profile-2020-09-01-hybrid
リソース @azure/arm-resources-profile-hybrid-2020-09-01
Keyvault @azure/arm-keyvault-profile-2020-09-01-hybrid

サービスの最新の API バージョンを使用するには、特定のクライアント ライブラリの Latest プロファイルを使用します。 たとえば、リソース サービスの最新の API バージョンを単独で使用する場合は、リソース管理クライアント ライブラリ パッケージの azure-arm-resource プロファイルを使用します。

リソース プロバイダーの特定の API バージョンには、パッケージ内で定義されている特定の API バージョンを使用します。

  • @azure/arm-resourceprovider-profile-2020-09-01-hybrid

    Azure Stack Hub 用に作成された最新のプロファイル。 1808 以降のスタンプを使用している限り、Azure Stack Hub との互換性に優れたサービスには、このプロファイルを使用します。

  • @azure-arm-resource

    このプロファイルは、すべてのサービスの最新バージョンで構成されます。 Azure ですべてのサービスの最新バージョンを使用してください。

Profiles

日付を含むプロファイルの場合、別の SDK プロファイルまたはバージョンを使用するには、@azure/arm-keyvault-profile-<date>-hybrid 内の日付を置き換えます。 たとえば、2008 バージョンの場合、プロファイルは 2019-03-01 で、文字列は @azure/arm-keyvault-profile-2019-03-01-hybrid になります。 SDK チームによってパッケージの名前が変更されることがあるため、文字列の日付を別の日付に置き換えるだけでは機能しない場合があることに注意してください。 プロファイルと Azure Stack バージョンの関連付けについては、次の表を参照してください。

Azure Stack バージョン プロファイル
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020-09-01
2102 2020-09-01
2008 2019-03-01

Azure Stack Hub および API プロファイルについて詳しくは、「API プロファイルの概要」をご覧ください。

Node.js SDK のインストール

  1. GIT をインストールします。 手順については、「Getting Started - Installing Git」 (はじめに - Git をインストールする) をご覧ください。

  2. Node.js の現在のバージョンをインストールまたはアップグレードします。 Node.js には、npm JavaScript パッケージ マネージャーも含まれています。

  3. Visual Studio Code をインストールまたはアップグレードし、Visual Studio Code 用の Node.js 拡張機能をインストールします。

  4. Azure Stack Hub Resource Manager のクライアントパッケージをインストールします。 詳細については、クライアント ライブラリをインストールする方法に関するページを参照してください。

  5. インストールする必要があるパッケージは、使用したいプロファイル バージョンによって異なります。 リソース プロバイダーの一覧については、「 npm のパッケージ」セクションを参照してください。

サブスクリプション

サブスクリプションをまだ用意していない場合は、サブスクリプションを作成し、後で使用できるようにサブスクリプション ID を保存します。 サブスクリプションの作成方法の詳細については、こちらのドキュメントを参照してください。

サービス プリンシパル

サービス プリンシパルとそれに関連付けられている環境情報を作成し、どこかに保存する必要があります。 owner ロールを持つサービス プリンシパルの使用をお勧めしますが、サンプルによっては contributor ロールで十分な場合もあります。 必要な値については、サンプル リポジトリの README を参照してください。 これらの値は、JSON ファイル (このサンプルで使っているもの) など、SDK 言語がサポートする任意の形式で読み取ることができます。 実行するサンプルによっては、これらの値のすべてが使われるわけではありません。 更新されたサンプル コードや詳細情報については、サンプル リポジトリを参照してください。

テナント ID

Azure Stack Hub のディレクトリまたはテナント ID を確認するには、この記事の手順に従ってください。

リソース プロバイダーを登録する

こちらのドキュメントに従って、必要なリソース プロバイダーを登録してください。 実行するサンプルに応じて、これらのリソース プロバイダーが必要になります。 たとえば、VM サンプルを実行する場合は、Microsoft.Compute リソース プロバイダーの登録が必要です。

Azure Stack Resource Manager エンドポイント

Azure Resource Manager (ARM) は、管理者が Azure リソースのデプロイ、管理、監視を行えるようにするための管理フレームワークです。 Azure Resource Manager では、これらのタスクを個別に処理するのではなく、グループとして単一の操作で処理することができます。 Resource Manager エンドポイントからメタデータ情報を取得できます。 エンドポイントは、コードを実行するために必要な情報と共に、JSON ファイルを返します。

以下、具体例に沿って説明します。

  • Azure Stack Development Kit (ASDK) の ResourceManagerEndpointUrlhttps://management.local.azurestack.external/ です。

  • 統合システムの ResourceManagerEndpointUrlhttps://management.region.<fqdn>/ です。ここで、<fqdn> は完全修飾ドメイン名です。

  • 必要なメタデータを取得するには、<ResourceManagerUrl>/metadata/endpoints?api-version=1.0 になります。

サンプル JSON:

{
   "galleryEndpoint": "https://portal.local.azurestack.external:30015/",
   "graphEndpoint": "https://graph.windows.net/",
   "portal Endpoint": "https://portal.local.azurestack.external/",
   "authentication": 
      {
         "loginEndpoint": "https://login.windows.net/",
         "audiences": ["https://management.yourtenant.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
}

サンプル

最新のサンプル コードについては、サンプル リポジトリを参照してください。 ルートの README.md には一般的な要件が説明されています。また、各サブディレクトリには、個別のサンプルとそのサンプルを実行する方法に関する独自の README.md が格納されています。

Azure Stack バージョン 2008 またはプロファイル 2019-03-01 以前に適用できるサンプルについては、こちらを参照してください。

次のステップ

API プロファイルに関する詳細情報