首页 > 解决方案 > API 连接因“禁止”而失败

问题描述

我在 ISE 中有一个逻辑应用程序,它使用 API 连接写入我的存储帐户。ISE 和存储帐户都在同一个专用 VNet 中,并且我的存储帐户为 ISE 的每个子网启用了防火墙规则。即便如此,对逻辑应用的所有请求都无法写入 Blob 存储,并出现以下错误:

{
  "status": 403,
  "message": "This request is not authorized to perform this operation.\r\nclientRequestId: ...",
  "error": {
    "message": "This request is not authorized to perform this operation."
  },
  "source": "azureblob-cus.azconn-cus.p.azurewebsites.net"
}

如果我禁用 Blob 存储防火墙规则,它可以写入存储帐户。为什么我的逻辑应用(在 ISE 中为存储帐户配置了防火墙规则)不能写入我的存储帐户?

标签: azureazure-logic-appsazure-blob-storage

解决方案


我想到了。我正在针对公开可用的 blob 存储服务而不是我的 ISE 中的托管连接器创建我的 API 连接。而不是拥有

{
    "type": "Microsoft.Web/connections",
    "apiVersion": "2016-06-01",
    "location": "[resourceGroup().location]",
    "name": "[parameters('BackupStorageAccountName')]",
    "properties": {
        ...
        "api": {
            "id": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/azureblob')]"
        }
    }
}

我需要有

{
    "type": "Microsoft.Web/connections",
    "apiVersion": "2016-06-01",
    "location": "[resourceGroup().location]",
    "name": "[parameters('BackupStorageAccountName')]",
    "properties": {
        ...
        "api": {
            "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Logic/integrationServiceEnvironments/', parameters('iseName'), '/managedApis/azureblob')]"
        }
    }
}

推荐阅读