如何在不存在的容器中保存Blob?Logic App开发遇404错误求助
嘿,我刚好处理过类似的场景,这个问题其实不用手动折腾容器,直接在你的Logic App里加几步逻辑就能自动搞定!
解决Logic App自动创建Blob容器的方案
核心思路很简单:在创建Blob之前,先检查目标容器是否存在,不存在就自动创建,存在则直接执行后续的Blob写入操作。具体步骤如下:
第一步:加入容器存在性检查
在你当前生成Blob的动作之前,插入一个Azure Blob Storage连接器的Get container动作,填入你要使用的容器名称(比如你提到的tmp),并选择对应的存储账户。第二步:添加条件判断分支
紧接着添加「条件」控制动作,设置判断规则来检测容器是否不存在:@equals(body('Get_container')?['status'], 404)这个表达式会判断
Get container动作是否返回了404错误(也就是容器不存在的情况)。第三步:分支执行对应逻辑
- 如果条件判定为「是」(容器不存在):添加
Create container动作,填入相同的容器名称,完成容器创建后,再执行你原来的创建Blob动作。 - 如果条件判定为「否」(容器已存在):直接跳过容器创建步骤,执行原来的Blob写入逻辑。
- 如果条件判定为「是」(容器不存在):添加
额外注意事项
确保你的Logic App使用的身份(托管标识或服务主体)拥有足够的Azure Blob Storage权限,至少需要Storage Blob Data Contributor角色,这样才能顺利执行容器创建和Blob写入操作。
这个方案完全适配你每分钟定时触发的场景,既不会有额外的性能负担,又能彻底解决容器不存在导致的404错误。
内容的提问来源于stack exchange,提问作者zgue
相关产品推荐
相关产品推荐

