仮想ネットワークで Azure Functions を構成する方法

この記事では、仮想ネットワークに接続してそこで実行されるように関数アプリを構成するタスクを実行する方法について説明します。 ストレージ アカウントをセキュリティで保護する方法に関する詳細なチュートリアルについては、仮想ネットワークへの接続チュートリアルを参照してください。 Azure Functions とネットワークの詳細については、「Azure Functions のネットワーク オプション」を参照してください。

お使いのストレージ アカウントを仮想ネットワークに制限する

関数アプリを作成するときは、新しいストレージ アカウントを作成するか、既存のストレージ アカウントにリンクします。 関数アプリの作成中に、仮想ネットワークの背後にある新しいストレージ アカウントをセキュリティで保護し、関数アプリをこのネットワークと統合できます。 現時点では、関数アプリで使用されている既存のストレージ アカウントを同じようにセキュリティで保護することはできません。

注意

ストレージ アカウントのセキュリティ保護は、専用 (App Service) プランとエラスティック Premium プランの両方のすべてのレベルでサポートされています。 従量課金プランでは、現在、仮想ネットワークはサポートされていません。

ストレージ アカウントに関するすべての制限の一覧については、「ストレージ アカウントの要件」を参照してください。

関数アプリの作成時

仮想ネットワークの背後でセキュリティ保護された新しいストレージ アカウントと共に、新しい関数アプリを作成できます。 次のリンクは、Azure portal またはデプロイ テンプレートを使用してこれらのリソースを作成する方法を示しています。

次のチュートリアルを完了して、セキュリティで保護されたストレージ アカウントで新しい関数アプリを作成します: プライベート エンドポイントを使用して Azure Functions と仮想ネットワークを統合する

既存の関数アプリ

既存の関数アプリがある場合、アプリで現在使用されているストレージ アカウントを直接セキュリティで保護することはできません。 代わりに、既存のストレージ アカウントを、セキュリティで保護された新しいストレージ アカウントに入れ替える必要があります。

既存の関数アプリのストレージをセキュリティで保護するには:

  1. サービス エンドポイントまたはプライベート エンドポイントが有効になっていないストレージ アカウントを持つ関数アプリを選択します。

  2. 関数アプリの仮想ネットワーク統合を有効にします

  3. 2 つ目のストレージ アカウントを作成または構成します。 これは、関数アプリが代わりに使用するセキュリティで保護されたストレージ アカウントになります。

  4. ストレージ アカウントにファイル共有を作成します。

  5. 次のいずれかの方法で新しいストレージ アカウントをセキュリティで保護します。

    • プライベート エンドポイントを作成する。 プライベート エンドポイント接続を使用する場合、ストレージ アカウントには、fileblob のサブリソース用のプライベート エンドポイントが必要です。 Durable Functions では、プライベート エンドポイントを介してアクセス可能な queuetable のサブリソースも作成する必要があります。

    • 仮想ネットワークからサービス エンドポイントを有効にする。 サービス エンドポイントを使用する場合は、ファイアウォールでストレージ アカウントに対して関数アプリ専用のサブネットを有効にします。

  6. ファイルと BLOB のコンテンツを、関数アプリで使用されている現在のストレージ アカウントから、新しくセキュリティ保護されたストレージ アカウントとファイル共有にコピーします。

  7. このストレージ アカウントの接続文字列をコピーします。

  8. 関数アプリの [構成] の下の [アプリケーションの設定] を次のように更新します。

    設定名 解説
    AzureWebJobsStorage ストレージ接続文字列 これは、セキュリティで保護されたストレージ アカウントの接続文字列です。
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING ストレージ接続文字列 これは、セキュリティで保護されたストレージ アカウントの接続文字列です。 この設定は、Windows と Linux の両方で従量課金と Premium のプランのアプリに必須です。 Functions によって動的にスケーリングされない Dedicated プランのアプリには必須ではありません。
    WEBSITE_CONTENTSHARE ファイル共有 プロジェクト配置ファイルが存在する、セキュリティで保護されたストレージ アカウントに作成されたファイル共有の名前。 この設定は、Windows と Linux の両方で従量課金と Premium のプランのアプリに必須です。 Functions によって動的にスケーリングされない Dedicated プランのアプリには必須ではありません。
    WEBSITE_CONTENTOVERVNET 1 値 1 を指定すると、ストレージ アカウントを仮想ネットワークに制限している場合に、関数アプリをスケーリングできます。 ストレージ アカウントを仮想ネットワークに制限する場合は、この設定を有効にする必要があります。
  9. [保存] を選択して、アプリケーション設定を保存します。 アプリの設定を変更すると、アプリが再起動されます。

関数アプリが再起動すると、セキュリティで保護されたストレージ アカウントに接続されるようになります。

次のステップ