Azure Spring Apps Enterprise プランで VMware Tanzu アプリケーション アクセラレータを使用する
Note
Basic、Standard、および Enterprise プランは、2025 年 3 月中旬以降に非推奨になり、3 年間の廃止期間となります。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨となり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金と専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:❌ Basic または Standard ✔️ Enterprise
この記事では、Azure Spring Apps Enterprise プランで VMware Tanzu のアプリケーション アクセラレータ (アプリ アクセラレータ) を使用して、検出可能かつ反復可能な方法でアプリケーションの開発をブートストラップする方法について説明します。
アプリ アクセラレータは、検出可能かつ反復可能な方法でアプリケーションの開発をブートストラップし、それをデプロイするのに役立ちます。 アプリ アクセラレータを使用すると、発行されたアクセラレータ プロジェクトに基づいて新しいプロジェクトを作成できます。 詳細については、VMware のドキュメントにある VMware Tanzu のアプリケーション アクセラレータに関する記事を参照してください。
前提条件
Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
「Azure Marketplace の Enterprise プラン」の「要件」セクションに一覧表示されている要件を理解し、それを満たしていること。
Azure Spring Apps 拡張機能を使用した Azure CLI。 次のコマンドを使用して、以前のバージョンを削除し、最新の拡張機能をインストールします。 以前に
spring-cloud
拡張機能をインストールした場合は、構成とバージョンの不一致を回避するためにそれをアンインストールします。az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
VS Code でアプリ アクセラレータを使うには、次の前提条件も満たしている必要があります。
アプリ アクセラレータを有効にする
Azure Spring Apps Enterprise プラン インスタンスをプロビジョニングするときに、アプリ アクセラレータを有効にすることができます。 既に Azure Spring Apps Enterprise プラン リソースがある場合は、「既存の Enterprise プラン インスタンスでアプリ アクセラレータを管理する」セクションを参照して有効にしてください。
アプリ アクセラレータは、Azure portal または Azure CLI を使用して有効にできます。
Azure portal を使用してアプリ アクセラレータを有効にするには、次の手順を使用します。
Azure portal を開きます。
[基本] タブで、[価格] セクションの [Enterprise レベル] を選択し、必要な情報を指定します。 次に、[次へ: VMware Tanzu の設定] を選択します。
[VMware Tanzu の設定] タブで、[アプリ アクセラレータを有効にする] を選択します。
他の設定を指定し、[確認と作成] を選択します。
[確認と作成] タブで、[アプリ アクセラレータを有効にする] と [開発者ツール ポータルを有効にする] が [はい] に設定されていることを確認します。 [作成] を選択して、Enterprise プラン インスタンスを作成します。
アプリ アクセラレータを監視する
アプリケーション アクセラレータを使用すると、Git リポジトリ内のファイルから新しいプロジェクトを生成できます。 次の表では、アプリケーション アクセラレータのコンポーネントについて説明します。
コンポーネント名 | インスタンス数 | インスタンスあたりの vCPU | インスタンスあたりのメモリ | 説明 |
---|---|---|---|---|
accelerator-server |
2 | 0.4 コア | 0.5Gi | 使用可能なアクセラレータとオプションを一覧表示するために、開発ツール ポータルで使用される API を処理します。 |
accelerator-engine |
1 | 1 コア | 3Gi | 入力値とファイル (Git リポジトリのスナップショットからプルされます) を処理し、動的変換を適用してプロジェクトを生成します。 |
accelerator-controller |
1 | 0.2 コア | 0.25Gi | アプリケーション アクセラレータのリソースを調整します。 |
source-controller |
1 | 0.2 コア | 0.25Gi | アプリケーション アクセラレータで使用される ImageRepositories および MavenArtifacts リソースを調整するコントローラーを登録します。 |
flux-source-controller |
1 | 0.2 コア | 0.25Gi | アプリケーション アクセラレータで使用される GithubRepository リソースを調整するコントローラーを登録します。 アプリケーション アクセラレータの Git リポジトリ ソースの管理をサポートします。 |
Azure portal と Azure CLI を使用して、すべてのコンポーネントの実行中のインスタンスとリソース使用状況を確認できます。
次のスクリーンショットに示すように、Azure portal の [開発者ツール] ページで、アプリケーション アクセラレータの状態を表示できます。
アプリケーション アクセラレータにアクセスするように開発ツールを構成する
アプリケーション アクセラレータにアクセスするには、Tanzu Dev Tools を構成する必要があります。 詳細については、「Azure Spring Apps Enterprise プランで Tanzu Dev Tools を構成する」を参照してください。
アプリケーション アクセラレータを使用して新しいプロジェクトをブートストラップする
アプリケーション アクセラレータを使用して新しいプロジェクトをブートストラップするには、アクセラレータを管理するためのアクセス許可を取得する必要があります。 その後、事前定義済みのアクセラレータまたは独自のアクセラレータを管理できます。
アクセラレータを管理するためのアクセス許可を取得する
アクセラレータの管理には、次のアクセス許可が必要です。
- 読み取り: Azure Spring Apps の事前定義済みのアクセラレータを取得する
- その他: Azure Spring Apps の事前定義済みのアクセラレータを無効にする
- その他: Azure Spring Apps の事前定義済みのアクセラレータを有効にする
- 書き込み: Microsoft Azure Spring Apps のカスタマイズされたアクセラレータを作成または更新する
- 読み取り: Azure Spring Apps のカスタマイズされたアクセラレータを取得する
詳細については、「Azure Spring Apps でアクセス許可を使用する方法」を参照してください。
事前定義済みのアクセラレータを管理する
新しいプロジェクトをブートストラップするには、まず、いくつかの事前定義済みのアクセラレータから始めることができます。 独自の優先順位に従って、組み込みアクセラレータを無効または有効にすることができます。
事前定義済みのアクセラレータは、Azure portal または Azure CLI を使用して管理できます。
次のスクリーンショットに示すように、Azure portal の [アクセラレータ] タブで、組み込みアクセラレータを表示できます。
独自のアクセラレータを管理する
事前定義済みのアクセラレータの使用に加えて、独自のアクセラレータを作成できます。 Azure DevOps、GitHub、GitLab、または BitBucket 内の任意の Git リポジトリを使用できます。
独自のアクセラレータを作成して保持するには、次の手順を使用します。
まず、Git リポジトリのルート ディレクトリに accelerator.yaml という名前のファイルを作成します。
この accelerator.yaml ファイルを使用して、ユーザーが UI の形式で入力する入力オプションを宣言できます。 これらのオプション値は、テンプレート エンジンが zip 形式の出力ファイルを返す前に行う処理を制御します。 accelerator.yaml ファイルを含めない場合でも、リポジトリは引き続きアクセラレータとして動作しますが、ファイルは変更されずにユーザーに渡されます。 詳細については、accelerator.yaml ファイルの作成に関するページを参照してください。
次に、新しいアクセラレータを発行します。
accelerator.yaml ファイルを作成したら、アクセラレータを作成できます。 その後、Azure portal か、または開発ツール ポータルの [アプリケーション アクセラレータ] ページでそれを表示できます。 新しいアクセラレータは、Azure portal または Azure CLI を使用して発行できます。
独自のアクセラレータを作成するには、[アクセラレータ] セクションを開き、[カスタマイズされたアクセラレータ] セクションで [アクセラレータの追加] を選択します。
次の表では、カスタマイズ可能なアクセラレータのフィールドについて説明します。
ポータル | CLI | 説明 | 必須/省略可能 |
---|---|---|---|
名前 | name |
アクセラレータの一意の名前。 この名前は、作成した後には変更できません。 | 必須 |
説明 | display-name |
アクセラレータの少し長い説明。 | オプション |
アイコンの URL | icon-url |
UI でこのアクセラレータを表す画像の URL。 | オプション |
タグ | accelerator-tags |
UI での検索で使用できるアクセラレータの属性を定義する文字列の配列。 | オプション |
Git の URL | git-url |
アクセラレータ ソース Git リポジトリのリポジトリ URL。 この URL には HTTP/S または SSH アドレスを指定できます。 SSH アドレスでは、scp のような構文はサポートされていません (user@example.com:repository.git など)。 代わりに、有効な URL 形式は ssh://user@example.com:22/repository.git です。 |
必須 |
Git 間隔 | git-interval-in-seconds |
リポジトリ更新がないかどうかを確認する間隔。 指定されていない場合、間隔は既定で 10 分に設定されます。 また、アクセラレータが UI に表示されるまでの更新間隔 (現在は 10 秒) もあります。 変更が UI に反映されるまでに 10 の遅延が発生する可能性があります。 | オプション |
Git ブランチ | git-branch |
チェックアウトして変更を監視するための Git ブランチ。 指定する必要があるのは Git ブランチ、Git コミット、または Git タグだけです。 | オプション |
Git コミット | git-commit |
チェックアウトするための Git コミット SHA。指定する必要があるのは Git ブランチ、Git コミット、または Git タグだけです。 | オプション |
Git タグ | git-tag |
チェックアウトするための Git コミット タグ。指定する必要があるのは Git ブランチ、Git コミット、または Git タグだけです。 | オプション |
Git サブ パス | git-sub-path |
アクセラレータまたはフラグメントのルートと見なすべき Git リポジトリ内のフォルダー パス。 | オプション |
認証の種類 | N/A |
アクセラレータ ソース リポジトリの認証の種類。 種類には Public 、Basic auth 、または SSH を指定できます。 |
必須 |
ユーザー名 | username |
認証の種類が Basic auth であるアクセラレータ ソース リポジトリにアクセスするためのユーザー名。 |
認証の種類が Basic auth である場合に必要です。 |
パスワード/個人用アクセス トークン | password |
認証の種類が Basic auth であるアクセラレータ ソース リポジトリにアクセスするためのパスワード。 |
認証の種類が Basic auth である場合に必要です。 |
秘密キー | private-key |
認証の種類が SSH であるアクセラレータ ソース リポジトリにアクセスするための秘密キー。 OpenSSH 秘密キーのみがサポートされています。 |
認証の種類が SSH である場合に必要です。 |
ホスト キー | host-key |
認証の種類が SSH であるアクセラレータ ソース リポジトリにアクセスするためのホスト キー。 |
認証の種類が SSH である場合に必要です。 |
ホスト キー アルゴリズム | host-key-algorithm |
認証の種類が SSH であるアクセラレータ ソース リポジトリにアクセスするためのホスト キー アルゴリズム。 ecdsa-sha2-nistp256 または ssh-rsa を指定できます。 |
認証の種類が SSH である場合に必要です。 |
CA 証明書の名前 | ca-cert-name |
認証の種類が Public または Basic auth である、自己署名証明書を使用するアクセラレータ ソース リポジトリにアクセスするための CA 証明書の名前。 |
Git リポジトリ URL に対して自己署名証明書が使用される場合に必要です。 |
Type | type |
カスタマイズされたアクセラレータの種類。 この種類には Accelerator または Fragment を指定できます。 既定値は Accelerator です。 |
オプション |
発行されているすべてのアクセラレータを表示するには、[開発者ツール] ページの [アプリ アクセラレータ] セクションを参照してください。 発行されているアクセラレータを開発ツール ポータルで表示するには、アプリ アクセラレータ URL を選択します。
新しく発行されたアクセラレータを表示するには、開発ツール ポータルを更新します。
Note
開発ツール ポータルでカタログが更新され、新しいアクセラレータのエントリが追加されるまでに数秒かかることがあります。 この更新間隔は、アクセラレータを作成するときに git-interval
として構成されます。 アクセラレータを変更した後、それが開発ツール ポータルに反映されるのにも時間がかかります。 ベスト プラクティスとして、Git リポジトリに変更を適用した後に git-interval
を変更して確認を速くすることをお勧めします。
独自のアクセラレータでフラグメントを参照する
アクセラレータの作成と保持は、新しいアクセラレータが追加されるに従って反復的で、かつ冗長になる場合があります。 ユーザーによっては既存のプロジェクトをコピーし、変更を加えることで新しいプロジェクトを作成しますが、このプロセスは退屈で、エラーが発生しやすくなる場合があります。 アクセラレータの作成とメンテナンスを簡単にするために、アプリケーション アクセラレータでは、フラグメントと呼ばれるアクセラレータの一部を再利用できる、コンポジションという名前の機能がサポートされています。
アクセラレータでフラグメントを参照するには、次の手順を実行します。
Azure portal または Azure CLI を使用して、種類が
Fragment
である新しいアクセラレータを発行します。フラグメント アクセラレータを作成するには、[アクセラレータ] セクションを開き、[カスタマイズされたアクセラレータ] セクションで [アクセラレータの追加] を選択してから [フラグメント] を選択します。
アクセラレータ プロジェクトで、accelerator.yaml ファイルを変更します。 次の例に示すように、
accelerator
セクションでimports
命令を、engine
セクションでInvokeFragment
命令を使用して、アクセラレータでフラグメントを参照します。accelerator: ... # options for the UI options: ... imports: - name: <fragment-accelerator-name> ... engine: chain: ... - merge: - include: [ "**" ] - type: InvokeFragment reference: <fragment-accelerator-name>
変更を開発ツール ポータルと同期します。
変更が開発ツール ポータルにより迅速に反映されるようにするために、カスタマイズされたアクセラレータの [Git 間隔] フィールドの値を指定できます。 [Git 間隔] の値は、システムが Git リポジトリに更新がないかどうかを確認する頻度を示します。
Azure portal または Azure CLI を使用して、変更を Azure portal のカスタマイズされたアクセラレータと同期します。
次の一覧は、変更を同期できる 2 つの方法を示しています。
- カスタマイズされたアクセラレータを作成または更新します。
- [アクセラレータ] セクションを開き、[証明書の同期] を選択します。
詳細については、VMware のドキュメントにあるアプリケーション アクセラレータでのフラグメントの使用に関する記事を参照してください。
アクセラレータを使用して新しいプロジェクトをブートストラップする
アクセラレータを使用して新しいプロジェクトをブートストラップするには、次の手順を使用します。
[開発者ツール] ページで、アプリ アクセラレータ URL を選択して開発ツール ポータルを開きます。
開発ツール ポータルで、アクセラレータを選択します。
[アクセラレータの生成] ページの [アクセラレータの構成] セクションで、入力オプションを指定します。
[ファイルの調査] を選択して、プロジェクト構造とソース コードを表示します。
[確認と生成] を選択して、指定したパラメーターを確認してから [アクセラレータの生成] を選択します。
その後、そのプロジェクトを zip ファイルとして表示またはダウンロードできます。
自己署名証明書を使用してアクセラレータを構成する
プライベート Git リポジトリを設定し、自己署名証明書を使用して HTTPS を有効にする場合は、アクセラレータから Git リポジトリへのクライアント証明書の検証のために、アクセラレータに対して CA 証明書の名前を構成する必要があります。
自己署名証明書を使用してアクセラレータを構成するには、次の手順を使用します。
- 証明書を Azure Spring Apps にインポートします。 詳細については、「Azure Spring Apps のアプリケーションで TLS/SSL 証明書を使用する」の「証明書をインポートする」セクションを参照してください。
- Azure portal または Azure CLI を使用して、アクセラレータに対して証明書を構成します。
アクセラレータに対して証明書を構成するには、[アクセラレータ] セクションを開き、[カスタマイズされたアクセラレータ] セクションで [アクセラレータの追加] を選択します。 次に、ドロップダウン リストから証明書を選択します。
証明書のローテーション
証明書の有効期限が切れたら、次の手順を使用して、Spring Cloud アプリの証明書をローテーションする必要があります。
- 信頼できる CA からの新しい証明書を生成します。
- 証明書を Azure Spring Apps にインポートします。 詳細については、「Azure Spring Apps のアプリケーションで TLS/SSL 証明書を使用する」の「証明書をインポートする」セクションを参照してください。
- Azure portal または Azure CLI を使用して、証明書を同期します。
アクセラレータでは、最新の証明書が自動的に使用されるわけではありません。 Azure portal または Azure CLI を使用して、1 つまたはすべての証明書を同期する必要があります。
すべてのアクセラレータに対して証明書を同期するには、次のスクリーンショットに示すように、[アクセラレータ] セクションを開き、[証明書の同期] を選択します。
1 つのアクセラレータに対して証明書を同期するには、次のスクリーンショットに示すように、[アクセラレータ] セクションを開き、アクセラレータのコンテキスト メニューから [証明書の同期] を選択します。
既存の Enterprise プラン インスタンスでアプリ アクセラレータを管理する
Azure portal または Azure CLI を使用して、既存の Azure Spring Apps Enterprise プラン インスタンスでアプリ アクセラレータを有効にすることができます。
開発ツールのパブリック エンドポイントが既に発行されている場合は、アプリ アクセラレータを有効にしてから、Ctrl+F5 キーを押してブラウザー キャッシュを非アクティブ化し、開発ツール ポータルでそれを表示できます。
Azure portal を使用して、既存の Azure Spring Apps Enterprise プラン インスタンスでアプリ アクセラレータを有効にするには、次の手順を使用します。
[開発者ツール] ページで、アプリ アクセラレータが有効または無効のどちらになっているかを表示できます。
VS Code でアプリ アクセラレータを使う
VS Code の Azure Spring Apps Enterprise プラン サービス インスタンスでアプリ アクセラレータの任意のアクセラレータからプロジェクトを直接ブートストラップできます。
アプリ アクセラレータの一覧を表示する
Azure Spring Apps Enterprise プラン サービス インスタンスでアプリ アクセラレータの一覧を表示するには、以下の手順を実行します。
Visual Studio Code で、Azure Spring Apps 拡張機能を開き、Azure アカウントにサインインします。
目的のサービス インスタンスを展開し、右クリックしてサービス インスタンスを選びます。
メニューから [アプリケーション アクセラレータを開く] を選び、アプリ アクセラレータの一覧を開きます。 Tanzu Application Accelerator Visual Studio Code 拡張機能がインストールされていない場合は、インストールするように求められます。
プロジェクトをブートストラップするアクセラレータを選びます。
Note
拡張機能を使っているときに、解決できない問題が発生した場合は、拡張機能からアカウントをログアウトします。
アプリ アクセラレータの問題のトラブルシューティング
アプリ アクセラレータが有効になっていない、またはパブリック エンドポイントが公開されていないサービス インスタンスに対してアプリ アクセラレータを開こうとすると、次のエラー メッセージが表示されます: Application Accelerator of Spring Apps <instance-name> is not enabled or publically accessible
。
アプリ アクセラレータを有効にしてパブリック エンドポイントを公開するには、以下の手順を実行します。 詳細については、「既存の Enterprise プラン インスタンスでアプリ アクセラレータを管理する」セクションを参照してください。
Dev Tools ポータルでシングル サインオンを有効にしている場合、拡張機能にアクセスすると、次のメッセージが表示されます:
The extension 'Tanzu App Accelerator' wants to sign in using VMware Tanzu.
。詳細については、「Azure Spring Apps Enterprise プランで Tanzu Dev Tools を構成する」の「Dev Tools ポータルの構成」セクションを参照してください。[許可] を選び、[開く] を選んでから、もう一度 [開く] を選び、VS Code 拡張機能の一覧を開きます。
場合によっては、次の例のようなエラー メッセージが表示されることがあります: AADSTS50011: The redirect URI 'vscode://VMware.tanzu-app-accelerator' specified in the request does not match the redirect URIs configured for the application 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'. Make sure the redirect URI sent in the request matches one added to your application in the Azure portal. Navigate to https://aka.ms/redirectUriMismatchError to learn more about how to fix this.
この問題を解決するには、関連する ID プロバイダー (IdP) にリダイレクト URI vscode://VMware.tanzu-app-accelerator
を追加します。 Microsoft Entra ID で [認証] メニューに移動し、プラットフォーム構成のモバイル アプリケーションとデスクトップ アプリケーションにリダイレクト URI を追加します。