仮想ネットワークでの Azure Spring Apps のトラブルシューティング

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この記事は、仮想ネットワークで Azure Spring Apps を使用中に発生する可能性のあるさまざまな問題を解決するのに役立ちます。

Azure Spring Apps サービス インスタンスの作成で問題が発生した

Azure Spring Apps のインスタンスを作成するには、仮想ネットワークにインスタンスをデプロイするための十分なアクセス許可が必要です。 Azure Spring Apps サービス インスタンス自体は、仮想ネットワークに Spring Cloud サービスのアクセス許可を付与する必要があります。 詳細については、「仮想ネットワークに Azure Spring Apps をデプロイする」の「仮想ネットワークにサービス アクセス許可を付与する」セクションを参照してください。

Azure portal を使用して Azure Spring Apps サービス インスタンスを設定すると、Azure portal でアクセス許可が検証されます。

Azure CLI を使用して Azure Spring Apps サービス インスタンスを設定するには、次の要件を確認します。

  • サブスクリプションがアクティブである。
  • この場所で Azure Spring Apps がサポートされている。
  • インスタンスのリソース グループが既に作成されている。
  • リソース名が、名前付け規則に準拠している 使用できる文字は小文字、数字、およびハイフンのみです。 先頭の文字は英字にする必要があります。 末尾の文字は、文字または数字にする必要があります。 値は 2 文字以上 32 文字以下にする必要があります。

Resource Manager テンプレートを使用して Azure Spring Apps サービス インスタンスを設定するには、Azure Resource Manager テンプレートの構造と構文の詳細に関する記事を参照してください。

作成に関する一般的な問題

エラー メッセージ 修正方法
Resources created by Azure Spring Apps were disallowed by policy. ネットワーク リソースは、Azure Spring Apps を独自の仮想ネットワークにデプロイするときに作成されます。 その作成をブロックする Azure Policy が定義されているかどうかを確認してください。 エラー メッセージに、作成されなかったリソースが一覧で示されています。
Required traffic is not allowlisted. 必要なトラフィックが許可リストに載っていることを確認するには、「仮想ネットワークでの Azure Spring Apps を実行に関するお客様の責任」を確認してください。

アプリケーションが登録できないか、構成サーバーから設定を取得できない

Azure Spring Apps ユーザー クラスター内で実行されているアプリケーションは、<service-instance-name>.svc.private.azuremicroservices.io ドメイン経由でシステム ランタイム クラスター内の Eureka Server と Config Server にアクセスする必要があります。

この問題は、仮想ネットワークにカスタム DNS 設定が構成されている場合に発生します。 この場合、Azure Spring Apps で使用されるプライベート DNS ゾーンが無効になります。 カスタム DNS サーバーにアップストリーム DNS サーバーとして Azure DNS IP 168.63.129.16 を追加します。

カスタム DNS サーバーがアップストリーム DNS サーバーとして Azure DNS IP 168.63.129.16 を追加できない場合は、アプリケーションの IP に DNS レコード *.svc.private.azuremicroservices.io を追加します。 詳細については、「仮想ネットワーク内の Azure Spring Apps のアプリにアクセスする」の「アプリケーションの IP を確認する」セクションを参照してください。

仮想ネットワーク内のアプリケーションのエンドポイントまたはテスト エンドポイントにアクセスできない

仮想ネットワークがカスタム DNS 設定で構成されている場合は、必ず、カスタム DNS サーバー内のアップストリーム DNS サーバーとして Azure DNS IP 168.63.129.16 を追加してください (まだ行っていない場合)。 その後、次の指示に従って進めます。

仮想ネットワークがカスタム DNS 設定で構成されていない場合、または仮想ネットワークがカスタム DNS 設定で構成されており、かつカスタム DNS サーバーのアップストリーム DNS サーバーとして Azure DNS IP 168.63.129.16 を既に追加している場合は、次の手順を実行します。

  1. 新しいプライベート DNS ゾーン private.azuremicroservices.io を作成します。

  2. 仮想ネットワークにプライベート DNS ゾーンをリンクします。

  3. 次の 2 つの DNS レコードを追加します。

    • *.private.azuremicroservices.io -> アプリケーションの IP。
    • *.test.private.azuremicroservices.io -> アプリケーションの IP。

詳細については、プライベート ネットワーク内のアプリケーションへのアクセスに関する記事を参照してください

公衆ネットワークからアプリケーションのパブリック エンドポイントにアクセスできない

Azure Spring Apps では、パブリック エンドポイントを使用したインターネットへのアプリケーションの公開がサポートされています。 詳細については、「Azure Spring Apps 上のアプリケーションをパブリック ネットワークからインターネットに公開する」を参照してください。

ユーザー定義ルート機能を使用している場合は、非対称ルーティングが原因で一部の機能がサポートされていません。 サポートされていない機能については、次の一覧を参照してください。

  • 公衆ネットワークを使用して、パブリック エンドポイントを介してアプリケーションにアクセスする。
  • 公衆ネットワークを使用して、ログ ストリームにアクセスする。
  • 公衆ネットワークを使用して、アプリ コンソールにアクセスする。

詳細については、「Azure Spring Apps インスタンスのエグレス トラフィックを制御する」を参照してください。

エグレス トラフィックがファイアウォールにルーティングされる場合も、同様の制限が Azure Spring Apps に適用されます。 この問題が発生するのは、どちらの状況もクラスターに非対称ルーティングをもたらすためです。 パケットはエンドポイントのパブリック IP アドレスに到着しますが、プライベート IP アドレスを介してファイアウォールに戻ります。 そのため、ファイアウォールはそのようなトラフィックをブロックする必要があります。 詳細については、「仮想ネットワークに Azure Spring Apps をデプロイする」の「独自のルート テーブルを使用する」セクションを参照してください。

エグレス トラフィックをファイアウォールにルーティングするが、アプリケーションをインターネットに公開する必要もある場合は、TLS 終端機能を使用してインターネットにアプリケーションを公開します。 詳細については、「Application Gateway で TLS 終端を使用してインターネットにアプリケーションを公開する」を参照してください。

その他の問題