连接字符串在Azure管道中存储为变量时迁移失败

nqwrtyyt  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(104)

我正在使用以下任务执行迁移。它就像预期的那样工作。

- task: SqlAzureDacpacDeployment@1
  displayName: "App DB migration"
  inputs:
    azureSubscription: $(SrvConn)
    AuthenticationType: 'connectionString'
    ConnectionString: "Server=tcp:my-server.database.windows.net,1433;Database=my-db;Persist Security Info=False;User=the_user;Password=hash_puppy;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
    deployType: 'SqlTask'
    SqlFile: '$(Pipeline.Workspace)/migration/db_app.sql'
    IpDetectionMethod: 'AutoDetect'

出于安全原因,我想将字符串移动到一个更安全的位置,并使用管道变量进行选择(如in this blog, secret value section所讨论的)。在声明了一个名为connstring的任务并从上面的示例中分配了确切的值之后,我运行了更新后的任务。但是,它会产生一系列错误。
使用ConnectionString: '%CONNSTR%'ConnectionString: $(CONSTRDEV)ConnectionString: $(env:CONSTRDEV)

[error]初始化字符串的格式不符合从索引0开始的规范。请访问www.example.com查看如何排除故障https://aka.ms/sqlazuredeployreadme#troubleshooting

使用ConnectionString: %CONNSTR%
在扫描下一个令牌时,查找无法开始任何令牌的字符。
当我执行下面的命令时,值就在那里,在屏幕上清晰可见。

- pwsh: Write-Host ${env:CONSTRDEV}

我看不出我做错了什么。阅读文档给了我不多。从理论上讲,它工作(打印输出确认)。然而,无论如何,迁移的任务都会失败。

72qzrwbm

72qzrwbm1#

它可能是您最初使用的双引号:

ConnectionString: "Server=tcp:my-server.database

在后面的一个中,你使用了单引号:

ConnectionString: '%CONNSTR%'

另外,你应该更改你的密码

相关问题