首页 文章

在Visual Studio Team Services构建中创建Azure Cloud Service包

提问于
浏览
0

我们拥有一个具有Web角色和辅助角色的Azure Cloud 服务 . 我们希望在Visual Studio Team Services中设置持续交付,在源签入时自动将构建推送到Azure . (QA环境) . 源代码在Github中 . 最好不要检查Github的秘密,所以我们只检查.csdef文件,而不是.cscfg文件 .

在VSTS中创建构建定义的最佳方法是从其他位置获取.cscfg文件并创建Cloud Service包吗?存储.cscfg文件的位置以及如何配置构建?

2 回答

  • 0

    解决方案:最终使用自定义PowerShell脚本将 .cscfg 文件中的配置值替换为VSTS变量 . 配置PowerShell脚本按发布管理管道中定义的环境运行 . 注意:定义为secret的变量必须作为参数传递给PowerShell脚本,因为PowerShell脚本无法使用 $Env: 访问这些参数

  • 0

    我们使用VSTS中提供的 Replace tokens 任务

    enter image description here

    您还可以为字符串替换指定前缀和后缀 .

    enter image description here

    然后在 ServiceConfiguration.Cloud.cscfg 中,您将使用定义的前缀和后缀来指示要替换的字符串 . 值将取自您在VSTS中定义的 Variables . 然后,您将在此前缀和后缀之间放置此设置的变量名称 .

    ServiceConfiguration.Cloud.cscfg 文件的示例将被 Password 变量替换 .

    <Setting name="SqlPassword" value="#{Password}#" />
    

    这可用于转换/替换任何配置文件中的任何字符串 . 需要注意的一点是,在某些配置文件中,架构将验证特定设置的值 .

    例如Cloud Service中 ServiceConfigurationCertificate 设置的情况 . 该值必须是有效的证书指纹(即任何数字0-9和/或字母A-F,小写和大写) . 如果值不符合架构要求,则定义此服务配置架构并且构建将失败 .

    为了解决这个问题,我们在Release中有另一个任务来替换证书 . 这个的前缀/后缀可能分别是 abcdef . 变量的名称将为 001 . 不幸的是,它不具有描述性,因为它必须是有效的证书指纹 .

    <Certificate name="MainSSL" thumbprint="abc001def" thumbprintAlgorithm="sha1" />
    

相关问题