azure - CLI 脚本中的 Azure 资源锁删除延迟
问题描述
我有一个 DevOps 管道,用于部署我的资源组(使用 ARM 模板)。
我的资源组有一个只读锁。在管道开始时,我运行 Azure CLI 脚本任务来移除锁。它运行良好。
紧接着,在同一个管道中,我有一个 ARM 模板部署任务。
当我的 ARM 模板部署任务运行时,它失败了,说我的资源组仍然被锁定。
如果我等待一段时间(几分钟)并重新运行 ARM 模板部署任务,它运行良好。
锁删除任务似乎有延迟。有这样的事吗?我在文档中找不到任何提及锁定删除延迟的内容。
最好的方法是什么?
解决方案
我没有遇到使用az lock delete
命令删除锁的延迟。
你可以多写几行脚本来检查删除后锁是否仍然存在。请参见下面的示例:
- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: 'Azure'
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
#delete the lock
az lock delete --name lockname --resource-group group --resource-name appname --resource-type Microsoft.Web/sites
# check if the deletion is finished, wait for 5s if not.
While(
$(az lock list --resource-group group --resource-name appname --resource-type Microsoft.Web/sites --output tsv --query "[?name=='lockname'].id")
){
Start-Sleep -s 5
}
在上面的 inlineScript 中,az lock delete
命令删除了锁。然后az lock list --query "[?name=='lockname'].id"
命令将检查锁是否仍然存在。如果锁被成功删除。然后以下任务将继续运行。
推荐阅读
- python - sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 约束失败:profile.user_id
- excel - 如何在 VBA 中声明 PtrSafe Sub?Windows 7、Excel 2016、64 位
- javascript - 如何为应用计算实现协程?
- python - FPDF编码在Python中不起作用
- three.js - 三个 js 导入 .obj - 网格显示不正确
- batch-file - 如何使用目录中每个文件的参数启动程序?
- ios - 高内存消耗
- python - 在python中以特殊顺序合并两个列表
- c# - 如何使用 Win32_ComputerSystem 类转换支持的总内存
- javascript - 从 ReactJS 上传到 NodeJS 时,Req.file 未定义