Azure Web PubSub でイベント ハンドラーを使用している場合、Azure App Service の Web Apps 機能を使用して作成した静的 Web アプリ、または Azure Functions を使用して作成した関数に対して、アップストリーム エンドポイントに向かう送信トラフィックが発生する可能性があります。 仮想ネットワークの一覧からの接続を受け入れ、公衆ネットワークからの外部接続を拒否するエンドポイントを使用するように Web アプリと関数を構成できます。 それらのエンドポイントに到達するためのアウトバウンド プライベート エンドポイント接続を Web PubSub サービスに作成できます。
この記事では、公衆ネットワークではなく共有プライベート エンドポイントを介して Azure Functions の関数にアップストリーム呼び出しを送信するように Web PubSub リソースを構成する方法について説明します。
このアウトバウンド メソッドは、次の要件を満たしていることが前提となります。
- アップストリーム エンドポイントは、Azure App Service または Azure Functions を使用してデプロイする必要があります。
- Web PubSub リソースは、Standard レベルまたは Premium レベルにある必要があります。
- Azure App Service または Azure Functions リソースを作成するには、特定のレベルを選択してリソースを作成する必要があります。 詳細については、Azure Web アプリでのプライベート エンドポイントの使用に関する記事を参照してください。
Azure Web PubSub API を使用して作成されたセキュリティで保護されたリソースのプライベート エンドポイントは、"共有プライベート リンク リソース" と呼ばれます。 Azure Private Link と統合されている Azure Functions リソースなどのリソースへのアクセスを "共有" しています。 これらのプライベート エンドポイントは、Web PubSub Service の実行環境内に作成され、直接見ることはできません。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure Web PubSub インスタンス。
- Azure Functions リソース。
Note
この記事の例では、次の値を使用します。
- この Azure Web PubSub リソースのリソース ID は
_/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub
です。 - Azure Functions ネットワーク リソースのリソース ID は
_/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func
です。
次の例の手順を実行するには、これらの値を実際のサブスクリプション ID、Web PubSub リソースの名前、Azure Functions リソースの名前に置き換えてください。
関数への共有プライベート リンク リソースを作成する
Azure portal で、Azure Web PubSub リソースに移動します。
左側のメニューで、[ネットワーク] を選択します。
[プライベート アクセス] を選択します。
[共有プライベート エンドポイントの追加] を選択します。
共有プライベート エンドポイントの名前を入力します。
ターゲット リンク ソースを選択するには、[リソースから選択する] を選択するか、[リソース ID の指定] でリソース ID を入力します。
必要に応じて、[要求メッセージ] にテキストを入力して、ターゲットのリソース所有者に要求を送信できます。
[追加] を選択します。
共有プライベート エンドポイント リソースの [プロビジョニングの状態] の値は "成功" になります。 [接続状態] は、ターゲット リソースでエンドポイントが承認されるまで、"保留中" のままです。
関数のプライベート エンドポイント接続を承認する
共有プライベート エンドポイント接続の状態が "保留中" の場合、接続要求はターゲット リソースで承認される必要があります。
重要
プライベート エンドポイント接続の承認後は、公衆ネットワークから関数にアクセスすることができなくなります。 場合によっては、関数のエンドポイントにアクセスするためのプライベート エンドポイントを別途、自分の仮想ネットワークに作成する必要があります。
- Azure portal で Azure Functions アプリに移動します。
- 左側のメニューで、[ネットワーク] を選択します。
- [受信トラフィック] で [プライベート エンドポイント] を選択します。
- Web PubSub リソースで作成した保留中の接続を選択します。
- [承認] を選択してから、[はい] を選択して確定します。
[最新の情報に更新] を選択すると、状態を確認できます。 [接続状態] 状態が "承認済み" に更新されるまでに数分かかる場合があります。
共有プライベート リンク リソースの状態を照会する
承認が Web PubSub に反映されるまでに数分かかります。 Azure portal または Azure CLI を使用して、状態を確認できます。
この時点で、Azure Web PubSub と Azure Functions の間のプライベート エンドポイントが確立されます。
アップストリーム呼び出しがプライベート IP アドレスから行われていることを確認する
プライベート エンドポイントを設定したら、アップストリーム呼び出しの X-Forwarded-For
ヘッダーを確認することにより、受信した呼び出しの実行元がプライベート IP アドレスであることを確認できます。