使用构建工件以编程方式部署web应用程序zip包的Azure Arm模板

使用构建工件以编程方式部署web应用程序zip包的Azure Arm模板,azure,azure-pipelines,arm-template,azure-pipelines-release-pipeline,azure-devops-rest-api,Azure,Azure Pipelines,Arm Template,Azure Pipelines Release Pipeline,Azure Devops Rest Api,简短问题: 我想知道下面MSDeploy资源(Deploy azure app service)中的packageUri参数是否可以指向发布管道使用的VSTS生成服务器放置位置 如何以编程方式访问生成放置位置? 要使用VSTSAPI?哪一个? 也许这个链接可以提供一些启示: “资源”:[ { “名称”:“MSDeploy”, “类型”:“扩展”, “位置”:“[参数('位置')]”, “apiVersion”:“2014-06-01”, “dependsOn”:[ [concat('Mi

简短问题:

我想知道下面MSDeploy资源(Deploy azure app service)中的packageUri参数是否可以指向发布管道使用的VSTS生成服务器放置位置

如何以编程方式访问生成放置位置? 要使用VSTSAPI?哪一个? 也许这个链接可以提供一些启示:

“资源”:[
{
“名称”:“MSDeploy”,
“类型”:“扩展”,
“位置”:“[参数('位置')]”,
“apiVersion”:“2014-06-01”,
“dependsOn”:[
[concat('Microsoft.Web/sites/',parameters('siteName'))]
],
“标签”:{
“displayName”:“ContentDeploy”
},
“财产”:{
“packageUri”:“[concat(参数('packageUrl')、参数('sasToken'))]”,
“dbType”:“无”,
“连接字符串”:“,
“设置参数”:{
“IIS Web应用程序名称”:“[参数('siteName')”
}
}
}

]
我最近写了一篇关于使用PowerShell对构建进行排队并使用TFS API提取工件的博客。这对我们很有用

$artifacts = Invoke-RestMethod -Method Get -Credential $creds -ContentType application/json -Uri "$TFSUri/$project/_apis/build/builds/$buildId/artifacts?api-version=2.0"
foreach($artifact in $artifacts.value)
{
    $filePath = $artifact.resource.downloadUrl.Replace("file:", "").Replace("/", "\").Replace("%20", " ");          
    $path  = $filePath + "\*Package\*"
    if (Test-Path $path)
    {        
        $packagePath = "MSDeployPackages\$project-$buildName\"; 
        if ((Test-Path $packagePath) -eq $false) {
            New-Item $packagePath -ItemType directory
        }
        Copy-Item -Path $path -Destination $packagePath -Recurse -Force
    }
}

我最近写了一篇关于使用PowerShell对构建进行排队并使用TFS API提取工件的博客。这对我们很有用

$artifacts = Invoke-RestMethod -Method Get -Credential $creds -ContentType application/json -Uri "$TFSUri/$project/_apis/build/builds/$buildId/artifacts?api-version=2.0"
foreach($artifact in $artifacts.value)
{
    $filePath = $artifact.resource.downloadUrl.Replace("file:", "").Replace("/", "\").Replace("%20", " ");          
    $path  = $filePath + "\*Package\*"
    if (Test-Path $path)
    {        
        $packagePath = "MSDeployPackages\$project-$buildName\"; 
        if ((Test-Path $packagePath) -eq $false) {
            New-Item $packagePath -ItemType directory
        }
        Copy-Item -Path $path -Destination $packagePath -Recurse -Force
    }
}

非常确定您只需要使用“身份验证”标题提供承载令牌。这应该是一个非交互式用户。正如我上面所说的,我需要知道如何检索最新或特定的工件。在web应用程序或web作业后面打包,并使用模板和参数(如ResourceManagementClient=new ResourceManagementClient(new TokenCloudCredentials(subscriptionId,token);)启动PaaS基础设施的部署,作为代码和MS部署;CreateOrUpdate(resourceGroup、correlationId.ToString()、新的DeploymentProperties(模式、模板、参数等));有没有一种方法可以在VSTS构建API中使用类似于Persona Access Token的东西。我刚刚了解了如何获取令牌,但在下面的示例中,我找到了下面的代码,他们使用该令牌创建了新的令牌凭据,而我需要TokenCloudCredentials实例。我不知道这两者有什么区别。var cc=new ClientCredential(“{client id},“{client secret}”);var context=newauthenticationcontext(“{tenant id}”);var token=await context.AcquireTokenAsync(“,cc”);比如说,我找到了一种从服务与VSTSAPI交互的方法,如何从某个特定的构建中获取.zip工件,您是否发现了您的问题?我遇到了同样的问题,我想看看是否有其他人首先解决了这个问题。非常确定,您只需要使用“身份验证”标题提供一个承载令牌。这应该是一个非交互式用户。正如我上面所说的,我需要知道如何检索最新或特定的工件。在web应用程序或web作业后面打包,并使用模板和参数(如ResourceManagementClient=new ResourceManagementClient(new TokenCloudCredentials(subscriptionId,token);)启动PaaS基础设施的部署,作为代码和MS部署;CreateOrUpdate(resourceGroup、correlationId.ToString()、新的DeploymentProperties(模式、模板、参数等));有没有一种方法可以在VSTS构建API中使用类似于Persona Access Token的东西。我刚刚了解了如何获取令牌,但在下面的示例中,我找到了下面的代码,他们使用该令牌创建了新的令牌凭据,而我需要TokenCloudCredentials实例。我不知道这两者有什么区别。var cc=new ClientCredential(“{client id},“{client secret}”);var context=newauthenticationcontext(“{tenant id}”);var token=await context.AcquireTokenAsync(“,cc”);比如说,我找到了一种从服务与VSTSAPI交互的方法,如何从某个特定的构建中获取.zip工件,您是否发现了您的问题?我也遇到了同样的问题,我想看看是否有其他人首先发现了这一点。