【发布时间】:2023-01-25 17:41:04
【问题描述】:
仅供参考,我来自 AWS,因此欢迎进行任何比较。
我需要创建一个函数来检测何时将 blob 放入存储容器,然后下载 blob 以对其中的数据执行一些操作。
我已经创建了一个带有容器的存储帐户,以及一个带有 python 函数的函数应用程序。然后我设置了一个事件网格主题和订阅,以便 blob 创建事件触发该事件。我可以验证这是否有效。这给了我看起来像 https://<name>.blob.core.windows.net/<container>/<blob-name> 的 blob 的 URL。但是,当我尝试使用 BlobClient 下载此 blob 时,我收到各种关于没有正确的身份验证或密钥的错误。有没有一种方法可以让函数以与在 AWS 中相同的方式访问容器,我会给 lambda 一个具有 S3 权限的执行角色,或者我是否需要创建一些密钥以某种方式通过?
编辑:当 blob 放入容器时,我需要它尽快运行,据我所知,我需要使用 EventGrid 触发器而不是普通的 blob 触发器
【问题讨论】:
-
有两种选择:1) 你的函数应用程序可以有一个你为其分配 RBAC 角色的身份。 2) 您提供一个密钥,以访问您的函数应用程序的存储帐户。
-
你在使用 Azure Python SDK 吗?您是否使用正确的连接字符串配置了 BlobClient?
-
@Oxymoron 是的,使用 azure python SDK,我尝试使用存储帐户中的密钥,但是这给出了关于不正确的 hmac 的错误,我相信所以要么我遗漏了其他东西,要么我使用了错误的密钥?
标签: python amazon-web-services azure azure-functions azure-blob-storage