我们目前正在迁移到一个新的Azure订阅,在执行Azure功能时出现问题,这些功能在我们的旧Azure订阅中按预期工作。我们的旧订阅和新订阅之间的主要区别在于,我们已经建立了一个具有子网的虚拟网络,并在子网后面部署了我们的资源。
我们还必须从旧订阅中的Azure应用服务迁移到新订阅中的Azure应用环境。
我们的Azure环境包括:
应用服务环境
应用服务计划I1
Azure应用环境和存储容器位于同一虚拟网络但不同的子网上。该功能使用对存储帐户具有所有者角色的托管身份。
下面列出的代码在不包含虚拟网络的旧环境中运行良好,但在新环境中失败。
任何指导将不胜感激。
连接到Azure存储的Azure函数在从Visual Studio 2019本地运行时有效,但在从Azure门户运行时失败。
下面的代码段:
This section works just fine:
string storageConnectionString = XXXXConn.ConnectionETLFileContainer();//Get Storage connection string
var myDirectory = "XXXX/Uploads"; ///XXXX-etl-file-ingest/ABSS/Uploads/ CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();// Create a CloudBlobClient object for credentialed access to Azure Blob. CloudBlobContainer blobContainer = blobClient.GetContainerReference("XXXX-etl-blobfile-ingest");// Get a reference to the Blob Container we created previously. CloudBlobDirectory blobDirectory = blobContainer.GetDirectoryReference(myDirectory);// Get a reference to the Blob Directory.
var blobs = blobDirectory.ListBlobs(useFlatBlobListing: true); //set useFlatBlobListing as true
此语句失败:尝试遍历Blob文件并获取特定文件信息时发生失败。
foreach(blob中的var myblob)
更新2:
我发现的最简单的解释/原因是当应用服务或函数应用将WEBSITE_VNET_ROUTE_ALL
设置为1
时,所有到公共endpoint的流量都被阻止。因此,如果您的存储帐户没有配置私有endpoint,对它的请求将失败。
文档:"要阻止到公共地址的流量,必须将应用程序设置WEBSITE_VNET_ROUTE_ALL设置为1。"
https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#network-security-groups
更新1:。事实证明,我没有将私有DNS区域(这是在您创建新的私有endpoint时为您创建的)链接到我的VNET。
要做到这一点,请转到Azure门户中的私有DNS区域,并单击左侧菜单栏中的虚拟网络链接。在VNET中添加了一个新链接,您的功能集成在其中。
这可能与OP无关,但希望它能帮助其他人。
原始答案:
在我的例子中,通过启用Microsoft解决了这个问题。应用服务子网(专用子网)上的存储服务endpoint。
在转到配置边栏选项卡下的Azure门户打开存储帐户边栏选项卡中,您将能够看到存储帐户允许访问的网络列表。获得允许的网络列表后,请检查函数应用是否在其中一个网络上,如果不在,则需要将托管函数应用的网络添加到列表中。
我正在尝试从安装了Jupyter的笔记本电脑连接到Azure SQL Server实例。在这方面相当新,但有可能很容易解决的问题。 我已经通过PIP安装了64位Python3.7、Jupyter和AMD64 v17 pyodbc。然而,当我试图通过Jupyter连接时,我只是得到连接或驱动问题,不是很确定。 下面是我试图运行的代码,以连接并返回一个简单的前10行查询。 下面是我得到的错误消息: I
我想要实现什么 通过Azure Function连接到位于防火墙后面的Azure BLOB存储帐户。 迄今为止采取的步骤 Azure Function针对按预期工作的公共存储帐户开发和测试。 在我的Azure Function的Azure资源管理器之后,我找到出站地址(条目),并将它们添加到存储帐户的防火墙中。 问题 在尝试对具有防火墙的存储帐户运行Azure功能时,我收到一个状态:500内部服务
卡尔顿
我试图连接到网站在使用filezilla赢得Azure。它连接正常几分钟,我能够上传文件。但是后来它停止了工作。我收到这个消息: 响应:257"/"是当前目录。命令:I型响应:200型设置为I型。命令:PASV响应:227进入被动模式(137,117,88,16,40,32)。命令:列表响应:150打开二进制模式数据连接。响应:550网络连接被本地系统中止。错误:检索目录列表失败 我尝试过将传输模
我有我的Java maven项目的TFS存储库。我想通过创建新的管道来访问Azure DevOps中的那个项目。在Azure DevOps中,我们有5个选项,其中之一是通过TFVC创建新的管道,它要求存储库URL(连接URL)。我提到了连接URL,但在Azure DevOps中仍然没有显示项目结构。 我还尝试添加一个新的服务连接(添加azure Repos/Team Foundation服务连接)
我正在创建一个react应用程序。我有这样的代码 (我为axios和all设置了baseURL,因此URL是正确的) 我创建了一个firebase函数,如下所示(typescript) 现在,当我构建并运行firebase deploy——only函数,然后直接访问url时,一切正常。我明白我的问题。 但是在react应用程序中,我得到以下错误 从源http://localhost:3000访问X