Azure:如何使用 VSTS 發(fā)布 Web 應(yīng)用

來源: Microsoft
作者:Microsoft
時間:2021-03-10
17548
本文展示了如何構(gòu)建VSTS與中國Azure賬戶之間的連接。開發(fā)人員在Github上集成后,編譯并測試通過,再發(fā)布到Azure Web應(yīng)用上,期望的是持續(xù)集成持續(xù)發(fā)布,也就是CICD。我們可以通過Visual Studio Online(簡稱VSO),與Azure服務(wù)的集成,使用非常方便。

本文展示了如何構(gòu)建VSTS與中國Azure賬戶之間的連接。開發(fā)人員在Github上集成后,編譯并測試通過,再發(fā)布到Azure Web應(yīng)用上,期望的是持續(xù)集成持續(xù)發(fā)布,也就是CICD。我們可以通過Visual Studio Online(簡稱VSO),與Azure服務(wù)的集成,使用非常方便。

具體步驟如下:

1.登陸VSO并創(chuàng)建VSTS項目。

2.構(gòu)建VSTS與中國Azure賬戶之間的連接。

a.首先調(diào)用Powershell腳本來注冊當前VSTS服務(wù)到AzureAD里面,并授予它相應(yīng)Azure資源的Contributor權(quán)限,比如資源組或者整個訂閱,當然也可以是某個資源。

b.安裝Azure PowerShell,并將以下PowerShell腳本保存為:RegisterVstsMooncake.ps1。

PowerShell

param

(

[Parameter(Mandatory=$true,HelpMessage="Enter Azure Subscription name.You need to be Subscription Admin to execute the script")]

[string]$subscriptionName,

[Parameter(Mandatory=$true,HelpMessage="Provide a password for SPN application that you would create")]

[string]$password,

[Parameter(Mandatory=$false,HelpMessage="Provide a SPN role assignment")]

[string]$spnRole="contributor",

[Parameter(Mandatory=$false,HelpMessage="If assign role for target resource group,provide its name")]

[string]$resourceGroupName

)

#Initialize

$ErrorActionPreference="Stop"

$VerbosePreference="SilentlyContinue"

$userName=$env:USERNAME

$newguid=[guid]::NewGuid()

$displayName=[String]::Format("VSO.{0}.{1}",$userName,$newguid)

$homePage="http://"+$displayName

$identifierUri=$homePage

#Initialize subscription

$isAzureModulePresent=Get-Module-Name AzureRM*-ListAvailable

if([String]::IsNullOrEmpty($isAzureModulePresent)-eq$true)

{

Write-Output"Script requires AzureRM modules to be present.Obtain AzureRM from https://github.com/Azure/azure-powershell/releases.Please refer https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/DeployAzureResourceGroup/README.md for recommended AzureRM versions."-Verbose

return

}

Import-Module-Name AzureRM.Profile

Write-Output"Provide your credentials to access Azure subscription$subscriptionName"-Verbose

Login-AzureRmAccount-SubscriptionName$subscriptionName-Environment'AzureChinaCloud'

$azureSubscription=Get-AzureRmSubscription-SubscriptionName$subscriptionName

$connectionName=$azureSubscription.Name

$tenantId=$azureSubscription.TenantId

$id=$azureSubscription.Id

$securePASS=ConvertTo-SecureString-String$password-AsPlainText-Force

#Create a new AD Application

Write-Output"Creating a new Application in AAD(App URI-$identifierUri)"-Verbose

$azureAdApplication=New-AzureRmADApplication-DisplayName$displayName-HomePage$homePage-IdentifierUris$identifierUri-Password$securePASS-Verbose

$appId=$azureAdApplication.ApplicationId

Write-Output"Azure AAD Application creation completed successfully(Application Id:$appId)"-Verbose

#Create new SPN

Write-Output"Creating a new SPN"-Verbose

$spn=New-AzureRmADServicePrincipal-ApplicationId$appId

$spnName=$spn.ServicePrincipalNames[0]

Write-Output"SPN creation completed successfully(SPN Name:$spnName)"-Verbose

#Assign role to SPN

Write-Output"Waiting for SPN creation to reflect in Directory before Role assignment"

Start-Sleep 20

if([String]::IsNullOrEmpty($resourceGroupName)-eq$true)

{

Write-Output"Assigning role($spnRole)to SPN App($appId)"-Verbose

New-AzureRmRoleAssignment-RoleDefinitionName$spnRole-ServicePrincipalName$appId

}

else

{

Write-Output"Assigning role($spnRole)to SPN App($appId)for resource group($resourceGroupName)"-Verbose

New-AzureRmRoleAssignment-ResourceGroupName$resourceGroupName-RoleDefinitionName$spnRole-ServicePrincipalName$appId

}

Write-Output"SPN role assignment completed successfully"-Verbose

#Print the values

Write-Output"`nCopy and Paste below values for Service Connection"-Verbose

Write-Output"***************************************************************************"

Write-Output"Connection Name:$connectionName(SPN)"

Write-Output"Subscription Id:$id"

Write-Output"Subscription Name:$connectionName"

Write-Output"Service Principal Id:$appId"

Write-Output"Service Principal key:<Password that you typed in>"

Write-Output"Tenant Id:$tenantId"

Write-Output"***************************************************************************"

c.執(zhí)行以下命令:

PowerShell

.RegisterVsts2Mooncake.ps1-subscriptionName'[YourAzureChinaSubscriptionName]'-password'[YourPassword]'-resourceGroupName'[YourAzureChinaResourceGroup]'

備注

第一個參數(shù)subscriptionName是訂閱名稱,password是密碼。注意這個密碼不一定是AzureChina登錄的密碼,我們可以設(shè)置為其他的密碼。請牢記這個密碼,我們會在后續(xù)步驟中使用,resourceGroupName是資源組名稱。

01 (1).png

d.登錄VSTS,在創(chuàng)建的項目的主頁上,點擊設(shè)置->Services->New Service Endpoint->Azure Resource Manager。

02 (1).png

3.在彈出的對話框里,點擊文字鏈接“use the full version of the endpoint dialog.”,會出現(xiàn)如下對話框,輸入前面腳本的輸出值,然后可以點擊“Verify connection”驗證連接。

03 (1).png

04 (1).png

此時創(chuàng)建好連接之后,便可以進行持續(xù)發(fā)布了。

4.發(fā)布Azure Web應(yīng)用。

在build and release標簽頁下的Builds選項中選擇template為ASP.net(如果項目為.netcore選擇Asp.net core)。

05 (1).png

在Releases選項中選擇Azure App Service Deployment即可成功發(fā)布。

06 (1).png

07 (1).png

08 (1).png

或者在build選項中選擇template為Azure Web App for ASP.NET,直接進行發(fā)布。

09 (1).png

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Microsoft,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運營方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實時洞察,同時幫助他們應(yīng)對跨IT和OT環(huán)境(包括云端、邊緣和本地)中運營、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動的數(shù)據(jù)平臺加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動的數(shù)據(jù)平臺加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺,旨在幫助組織推動人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多