Azure 发布管道任务。当前 blob 上有租约,请求中未指定租约 ID
Azure release pipeline task. There is currently a lease on the blob and no lease ID was specified in the request
我有一个 Azure 发布管道,其中一个步骤是将文件(比如“xyz.txt”)作为 Blob 文件从工作目录复制到 Azure 存储容器。直到昨天,它都运行良好并按预期工作。
steps:
- task: AzureFileCopy@3
displayName: 'Copy file to BLOB'
inputs:
SourcePath: '$(System.DefaultWorkingDirectory)/FilePath'
azureSubscription: 'ABCSubscription'
Destination: AzureBlob
storage: ABCstorage
ContainerName: abcContainerName
现在我对文件 ("xyz.txt") 做了一些更改,每当我从发布管道创建发布时,我都会看到错误 "The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request..
。这导致发布管道失败。解决方案是什么?
我是否必须登录门户并手动单击 "Break lease"
。有没有办法只通过管道来做到这一点 ("Break lease"
)?
您可以使用以下解决方法解除租约:
解决方案 1: 在 Azure Devops 中将如下所示:
steps:
- task: AzureCLI@2
displayName: "Break lease on terraform state"
name: BreakLease
inputs:
azureSubscription: ${{ parameters.ServiceConnectionName }}
scriptType: "pscore"
scriptLocation: "inlineScript"
inlineScript: "az storage blob lease break --container-name 'test' --blob-name '${{ parameters.File }}' --account-name '${{ parameters.StorageAccountName }}'"
方案二:可以通过azure storage explorer解除租约:
如果您想解除集装箱租约
第 1 步: 转到 存储帐户 --> select 容器 右键单击容器 Select 解除租约 .
对于 container 中的 blob 也是如此。
解决方案 3:使用 Azure CLI 命令解除租约
az storage blob lease break --blob-name --container-name [--account-key] [--account-name]
[--auth-mode {key, login}] [--connection-string] [--if-match] [--if-modified-since]
[--if-none-match] [--if-unmodified-since] [--lease-break-period] [--sas-token]
[--subscription] [--tags-condition] [--timeout]
有关详细信息,请参阅此文档:https://docs.microsoft.com/en-us/cli/azure/storage/blob/lease?view=azure-cli-latest#az_storage_blob_lease_break
我有一个 Azure 发布管道,其中一个步骤是将文件(比如“xyz.txt”)作为 Blob 文件从工作目录复制到 Azure 存储容器。直到昨天,它都运行良好并按预期工作。
steps:
- task: AzureFileCopy@3
displayName: 'Copy file to BLOB'
inputs:
SourcePath: '$(System.DefaultWorkingDirectory)/FilePath'
azureSubscription: 'ABCSubscription'
Destination: AzureBlob
storage: ABCstorage
ContainerName: abcContainerName
现在我对文件 ("xyz.txt") 做了一些更改,每当我从发布管道创建发布时,我都会看到错误 "The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request..
。这导致发布管道失败。解决方案是什么?
我是否必须登录门户并手动单击 "Break lease"
。有没有办法只通过管道来做到这一点 ("Break lease"
)?
您可以使用以下解决方法解除租约:
解决方案 1: 在 Azure Devops 中将如下所示:
steps:
- task: AzureCLI@2
displayName: "Break lease on terraform state"
name: BreakLease
inputs:
azureSubscription: ${{ parameters.ServiceConnectionName }}
scriptType: "pscore"
scriptLocation: "inlineScript"
inlineScript: "az storage blob lease break --container-name 'test' --blob-name '${{ parameters.File }}' --account-name '${{ parameters.StorageAccountName }}'"
方案二:可以通过azure storage explorer解除租约:
如果您想解除集装箱租约
第 1 步: 转到 存储帐户 --> select 容器 右键单击容器 Select 解除租约 .
对于 container 中的 blob 也是如此。
解决方案 3:使用 Azure CLI 命令解除租约
az storage blob lease break --blob-name --container-name [--account-key] [--account-name]
[--auth-mode {key, login}] [--connection-string] [--if-match] [--if-modified-since]
[--if-none-match] [--if-unmodified-since] [--lease-break-period] [--sas-token]
[--subscription] [--tags-condition] [--timeout]
有关详细信息,请参阅此文档:https://docs.microsoft.com/en-us/cli/azure/storage/blob/lease?view=azure-cli-latest#az_storage_blob_lease_break