Search code examples
azure-devopsazure-sql-databaseazure-releases

Not able to upload the .bacpac file from Azure VM to Azure blob storage container


I am working on a use case, where I will be deploying the DB schema from Development to UAT and Production, but before deploying to UAT and production, i am taking the backup of both UAT and production as a .bacpac file. Below are the steps I have performed in Azure DevOps pipeline

  1. Generated the .bacpac file using "Azure SQL Database deployment" inbuilt task. The file generated at "D:\a\r1\a\GeneratedOutputFiles\filename.bacpac

  2. check if the file exist on the above path -> Yes file is available.

  3. Copy to blob storage using "Azure File Copy" inbuilt task. The Source path which I took is $(System.ArtifactsDirectory)\GeneratedOutputFiles
    and destination is my blob container. PFA, the details about each step and the logs in the google drive document. The issue is I am not able to upload the file to blob storage as the logs says that the source folder is empty, but the file is present in the source folder. Can someone please take a look and guide me what I am missing here? Google Drive path of the document


Solution

  • The new v4 of the File Copy Task in Azure Pipelines moved from using AzCopy 8 to AzCopy 10, and it requires more security for Azure DevOps Service Principal to authenticate with Azure.

    You can:

    1. change to "v3" version for the task. enter image description here
    2. Or you need to give the Service Principal role of: Storage Blob Data Contributor and Storage Blob Data Owner

    You can find more details in link: https://github.com/microsoft/azure-pipelines-tasks/issues/13124

    and https://brettmckenzie.net/2020/03/23/azure-pipelines-copy-files-task-authentication-failed/.

    enter image description here