如何将安全存储帐户与 Azure Functions 配合使用

本文介绍如何将函数应用连接到安全存储帐户。 有关如何创建具有入站和出站访问限制的函数应用的深入教程,请参阅与虚拟网络集成教程。 若要详细了解 Azure Functions 和网络,请参阅 Azure Functions 网络选项

将存储帐户限制到虚拟网络中

创建函数应用时,必须创建新的存储帐户或关联到现有存储帐户。 目前,仅 ARM 模板和 Bicep 部署支持使用现有安全存储帐户创建函数应用。

注意

在专用(应用服务)和弹性高级计划中,所有层都支持保护存储帐户。 消耗计划目前不支持虚拟网络。

有关存储帐户的所有限制的列表,请参阅存储帐户要求

在创建函数应用期间保护存储

可以创建一个函数应用,以及一个新的存储帐户,该存储帐户在虚拟网络后面受到保护,可通过专用终结点进行访问。 以下链接展示了如何通过使用 Azure 门户或使用部署模板来创建这些资源:

完成以下教程以创建新函数应用的安全存储帐户:使用专用终结点将 Azure Functions 与虚拟网络集成

保护现有函数应用的存储

当具有现有的函数应用时,你无法直接保护应用当前使用的存储帐户。 必须将现有的存储帐户换成新的安全存储帐户。

1.启用虚拟网络集成

作为先决条件,需要为函数应用启用虚拟网络集成。

  1. 选择存储帐户未启用服务终结点或专用终结点的函数应用。

  2. 为函数应用启用虚拟网络集成

2.创建安全存储帐户

为函数应用设置安全存储帐户:

  1. 创建第二个存储帐户。 这将是函数应用将使用的安全存储帐户。 还可以使用 Functions 尚未使用的现有存储帐户。

  2. 复制此存储帐户的连接字符串。 稍后需要此字符串。

  3. 在新的存储帐户中创建文件共享。 尝试使用与现有存储帐户中的文件共享相同的名称。 否则,需要复制新文件共享的名称,以便稍后配置应用设置。

  4. 通过以下方式之一保护新的存储帐户:

    • 创建专用终结点。 设置专用终结点连接时,请为 fileblob 子资源创建专用终结点。 对于 Durable Functions,还必须使 queuetable 子资源可以通过专用终结点访问。 如果使用自定义或本地 DNS 服务器,请确保配置 DNS 服务器以解析为新的专用终结点。

    • 将流量限制为特定子网。 确保其中一个允许的子网是与函数应用进行网络集成的子网。 仔细检查子网是否具有 Microsoft.Storage 的服务终结点。

  5. 将文件和 blob 内容从函数应用使用的当前存储帐户复制到新的安全存储帐户和文件共享。 AzCopyAzure 存储资源管理器是常见方法。 如果使用 Azure 存储资源管理器,可能需要允许客户端 IP 地址进入存储帐户的防火墙。

现在,你已准备好将函数应用配置为与新的安全存储帐户通信。

3.启用应用程序和配置路由

现在,应路由函数应用的流量以通过虚拟网络。

  1. 启用应用程序路由将应用的流量路由到虚拟网络。

    • 导航到函数应用的“网络”选项卡。 在“出站流量配置”下,选择与虚拟网络集成关联的子网

    • 在新页中,选中“应用程序路由”下“出站 Internet 流量”框

  2. 启用内容共享路由,让函数应用通过其虚拟网络与新存储帐户通信。

    • 在同一页中,选中“配置路由”下“内容存储”框

4.更新应用程序设置

最后,需要更新应用程序设置,以指向新的安全存储帐户。

  1. 将函数应用的“配置”选项卡下的“应用程序设置”更新为以下内容

    设置名称 注释
    AzureWebJobsStorage
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
    存储连接字符串 这两个设置都包含前面保存的新安全存储帐户的连接字符串。
    WEBSITE_CONTENTSHARE 文件共享 在项目部署文件所在的受保护的存储帐户中创建的文件共享的名称。
  2. 选择“保存”,以保存应用程序设置。 更改应用设置会导致该应用重启。

函数应用在重启后现在已连接到受保护的存储帐户。

后续步骤