Azure 函数访问存储帐户

Posted

技术标签:

【中文标题】Azure 函数访问存储帐户【英文标题】:Azure function access to storage account 【发布时间】:2021-10-12 16:22:52 【问题描述】:

就我而言,我想从 Azure 函数应用访问存储帐户。两者都在同一个订阅和资源组中。我已修改 IAM 策略以允许 azure 函数访问存储帐户。但是,我收到以下错误:

Azure.RequestFailedException:服务请求失败。 状态:403(此请求无权执行此操作。) 错误代码:授权失败

标题: 传输编码:分块 服务器:Microsoft-HTTPAPI/2.0 x-ms-request-id: *** x-ms-client-request-id:*** x-ms-error-code:授权失败 日期:2021 年 8 月 8 日星期日 19:21:00 GMT

在 Azure.Storage.Blobs.BlobRestClient.GetPropertiesAsync(字符串快照,字符串 versionId,Nullable1 timeout, String leaseId, String encryptionKey, String encryptionKeySha256, Nullable1 加密算法,Nullable1 ifModifiedSince, Nullable1 ifUnmodifiedSince,字符串 ifMatch,字符串 ifNoneMatch,字符串 ifTags,CancellationToken cancelToken) 在 Azure.Storage.Blobs.Specialized.BlobBaseClient.GetPropertiesInternal(BlobRequestConditions 条件,布尔异步,CancellationToken 取消令牌,字符串 operationName)

【问题讨论】:

您是否以自己的身份运行该函数?您是否在存储帐户上启用了防火墙规则? @pinkfloydx33,这就是我所做的: 请编辑您的问题并包含您允许的权限? 【参考方案1】:

查看Microsoft documentation,了解我们如何使用 Azure 函数连接到存储

另外,我们需要检查以下几点:

    在配置 -> 应用程序设置中添加 AzureWebJobsStorage 和存储连接字符串。

    存储账户 > IAM > 添加角色分配,并为此类请求添加特殊权限:

存储 Blob 数据贡献者 存储队列数据贡献者
    另外,检查 Application Insights 日志流中的错误,发现您看到与 CORS 相关的任何内容。

【讨论】:

以上是关于Azure 函数访问存储帐户的主要内容,如果未能解决你的问题,请参考以下文章

带有 QueueTrigger 的 Azure 函数:是不是可以仅配置存储帐户 URL 并使用托管标识访问队列?

Azure 功能:访问存储帐户时出现 403 错误

Azure 存储帐户 - 容器级访问和 ACL

如何通过服务主体通过 Azure Key Vault 访问 Azure 存储帐户

从 Azure Function App 访问带有防火墙的 Azure Blob 存储

通过托管标识通过 Synapse 访问 Azure 存储帐户