練習 - 設定您的 Azure DevOps 環境
在本節中,您將了解如何設定 Azure DevOps 組織,並建立您將部署的 Azure App Service 環境。
您將學習如何:
- 設定您的 Azure DevOps 專案。
- 使用 Azure Boards 管理您的工作項目。
- 建立您的 Azure App Service 環境。
- 在 Azure Pipelines 中建立管線變數。
- 建立服務連線以使用 Azure 訂用帳戶驗證。
將使用者新增至 Azure DevOps
若要完成此課程模組,必須擁有自己的 Azure 訂用帳戶。 您可以免費開始使用 Azure。
您不需要 Azure 訂用帳戶,就能使用 Azure DevOps,但在此課程模組中,您將使用 Azure DevOps 來部署到 Azure 資源。 為簡化程序,請使用相同 Microsoft 帳戶來登入 Azure 入口網站和 Azure DevOps。
若您使用不同的 Microsoft 帳戶登入 Azure 和 Azure DevOps,請在您用於登入 Azure 的 Microsoft 帳戶下,將具有基本存取層級的使用者新增至您的 DevOps 組織。 如需詳細資訊,請參閱將使用者新增至您的組織或專案。
然後,登出 Azure DevOps,並使用您用來登入 Azure 訂用帳戶的相同帳戶重新登入。
取得 Azure DevOps 專案
請確定已設定 Azure DevOps 組織,以完成本課程模組的其餘部分。 若要執行此作業,您將執行在 Azure DevOps 中建立專案的範本。
此學習路徑中的課程模組有難度分級。 請跟隨 Tailspin Web 小組完成 DevOps 旅程。 為了方便學習,每個課程模組都有專用的 Azure DevOps 專案。
執行範本
執行可設定 Azure DevOps 組織的範本:
從 Azure DevOps 示範產生器網站中,遵循下列步驟以執行範本:
選取 [登入] 並接受使用條款。
在 [建立新專案] 頁面上,選取 Azure DevOps 組織。 輸入專案名稱,例如 Space Game - web - Docker。
選取 [是,我要派生此存放庫]>[授權]。 如果出現提示,請授與對您 GitHub 帳戶的存取權。
重要
您必須選取此選項,範本才能夠連線至您的 GitHub 存放庫。 即使您已派生 Space Game 存放庫,也請務必選取該核取方塊。 範本將使用您現有的分支。
選取 [建立專案]。
選取 [瀏覽至專案],前往您在 Azure DevOps 中的專案。
重要
此課程模組中的清除您的 Azure DevOps 環境頁面包含重要的清除步驟。 執行清除有助於確保您不會用盡可用的建置時間。 即使未完成本課程模組,也請務必執行清除步驟。
設定專案的可見度
一開始,GitHub 上 Space Game 存放庫的分支會設定為公用,而 Azure DevOps 範本所建立的專案設為私人。 GitHub 上的公用存放庫可供任何人存取,而私人存放庫只能存取您,以及您選擇與其共用的人員。 同樣地,在 Azure DevOps 上,公用專案會提供非驗證使用者的唯讀存取權,而私人專案則要求使用者獲得存取權,並經過驗證才能存取服務。
目前,為了本課程模組的目的,不需要修改任何這些設定。 不過,對於您的個人專案,您必須判斷您想要授與其他人的可見度和存取權。 例如,如果專案是開放原始碼,則您可以選擇將 GitHub 存放庫和 Azure DevOps 專案設為公用。 如果專案是專屬的,則您通常會將 GitHub 存放庫和 Azure DevOps 專案設為私人。
稍後,您可能會發現下列資源有助於判斷哪一個選項最適合您的專案:
將工作項目移至 [執行中]
在這裡,您會在 Azure Boards 上將工作專案指派給自己。 您也將會工作項目移至 [正在進行] 狀態。 在實務上,您和小組會在每個「短期衝刺」(或工作反覆項目) 開始時建立工作項目。
這種指派工作方式可以產出一份檢查清單,讓您展開工作。 如此,小組成員即可了解您正在處理的工作,以及剩下多少工作。 工作項目也有助於實施「進行中的工作」(WIP) 限制,以免小組一次處理太多工作。
在這裡,您會將第一個專案使用 Docker 建立網站的容器版本移至 [執行 ] 資料行,然後將您自己指派給工作專案。
設定工作項目:
在 Azure DevOps 中,瀏覽至 [Boards]。 然後,從功能表中選取 [Boards]。
在 使用 Docker 工作專案建立網站的容器版本中,選取卡片底部的向下箭號,然後將工作專案指派給自己。
將工作項目從 [待辦事項] 資料行移至 [正在進行] 資料行。
在本課程模組最後,您會在完成工作之後將卡片移至 [完成] 資料行。
建立 Azure App Service 環境
在使用 Azure Pipelines 建立發行管線課程模組中,您已使用 Azure 入口網站建立 App Service 執行個體。 雖然入口網站是探索 Azure 供應項目的絕佳工具,但設定 App Service 等元件可能會變得麻煩。
在本課程模組中,您將採用 Azure CLI 來啟動部署和執行 App Service 實例所需的資源。 您可以從終端或透過 Visual Studio Code 存取 Azure CLI。
重要
您必須具備自己的 Azure 訂用帳戶,才能完成本課程模組中的練習。
在 Azure 入口網站中啟動 Cloud Shell
瀏覽至 Azure 入口網站並登入。
從功能表列選取 Cloud Shell,然後選取 Bash 體驗。
注意
Cloud Shell 需要有 Azure 儲存體資源,才能保存您在 Cloud Shell 中建立的任何檔案。 第一次開啟 Cloud Shell 時,系統會提示您建立資源群組、儲存體帳戶,以及 Azure 檔案儲存體共用。 所有未來的 Cloud Shell 工作階段都會自動使用此設定。
選取 Azure 區域
區域是位於特定地理位置內的一或多個 Azure 資料中心。 美國東部、美國西部和歐洲北部是一些區域範例。 每個 Azure 資源,例如 App Service 執行個體,都會配置到特定區域。
若要簡化執行命令的程序,請從選取預設區域開始。 指定預設區域之後,除非明確指定不同的區域,否則後續命令預設會使用該區域。
執行下列命令來列出 Azure 訂用帳戶的可用區域。
az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
從輸出中的 [名稱] 資料行選取接近您位置的區域。 例如,您可以選擇 eastasia 或 westus2。
執行下列命令來設定您的預設區域。 將預留位置取代為您選取的區功能變數名稱稱。
az configure --defaults location=<REGION>
此範例會將 westus2 設定為預設區域:
az configure --defaults location=westus2
建立 Bash 變數
在本節中,您將建立 Bash 變數,讓設定程式更方便且較不容易出錯。 使用變數代表共用文字字串有助於避免不慎打錯字。
從 Cloud Shell 產生隨機數字。 這樣可讓您在下一個步驟中,更輕鬆為某些服務建立全域唯一名稱。
resourceSuffix=$RANDOM
為 App Service Web 應用程式和 Azure Container Registry 建立全域唯一名稱。 在這些命令中使用雙引號會提示 Bash 使用內嵌語法來插補變數。
webName="tailspin-space-game-web-${resourceSuffix}" registryName="tailspinspacegame${resourceSuffix}"
多建立兩個 Bash 變數,以儲存資源群組和 App Service 方案的名稱。
rgName='tailspin-space-game-rg' planName='tailspin-space-game-asp'
建立 Azure 資源
注意
為了學習目的,您將在這裡使用預設的網路設定。 這些設定讓您的網站可從網際網路存取。 實際上,您可以設定 Azure 虛擬網路,將網站放在非網際網路可路由傳送且只有您和小組才能存取的網路中。 稍後,您可以重新設定網路,讓使用者可以使用網站。
執行下列
az group create
命令,使用稍早定義的名稱建立資源群組。az group create --name $rgName
執行下列
az acr create
命令,使用稍早定義的名稱建立 Azure Container Registry。az acr create --name $registryName \ --resource-group $rgName \ --sku Standard \ --admin-enabled true
執行下列
az appservice plan create
命令,使用稍早定義的名稱建立 App Service 方案。az appservice plan create \ --name $planName \ --resource-group $rgName \ --sku B1 \ --is-linux
--sku
引數會指定 B1 方案。 此方案會在基本層上執行。--is-linux
引數指定使用 Linux 背景工作角色。重要
如果您的 Azure 訂用帳戶中沒有 B1 SKU,請選擇不同的方案,例如 S1 (標準)。
執行下列
az webapp create
命令,以建立 App Service 執行個體。az webapp create \ --name $webName \ --resource-group $rgName \ --plan $planName \ --deployment-container-image-name $registryName.azurecr.io/web:latest
執行下列
az webapp list
命令,以列出 App Service 執行個體的主機名稱和狀態。az webapp list \ --resource-group $rgName \ --query "[].{hostName: defaultHostName, state: state}" \ --output table
請記下執行中服務的主機名稱。 稍後驗證工作時需要用到。 以下為範例:
HostName State ---------------------------------------------- ------- tailspin-space-game-web-4692.azurewebsites.net Running
執行下列
az acr list
命令,以列出 Azure Container Registry 執行個體的登入伺服器。 稍後建立管線變數時需要此伺服器名稱。az acr list \ --resource-group $rgName \ --query "[].{loginServer: loginServer}" \ --output table
請記下登入伺服器。 稍後設定管線時需要用到。 以下為範例:
LoginServer --------------------------------- tailspinspacegame4692.azurecr.io
重要
此課程模組中的清除您的 Azure DevOps 環境頁面包含重要的清除步驟。 完成本課程模組後,清除可協助確保您不需支付 Azure 資源的費用。 請務必執行清除步驟,即使您未完成此課程模組亦然。
在 Azure Pipelines 中建立管線變數
在使用 Azure Pipelines 建立發行管線中,您已將變數新增至管線,在 App Service 中儲存 Web 應用程式的名稱。 您將在這裡執行相同的動作。 此外,還要新增 Azure Container Registry 的名稱。
您可以在管線設定中將這些名稱硬式編碼,但是若將其定義為變數,您的設定將會更容易重複使用。 此外,如果您的實例名稱變更,您可以更新變數並觸發管線,而不需要修改您的組態。
若要新增變數:
在 Azure DevOps 中,移至 Space Game - web - Docker 專案。
在 [管線] 下,選取 [程式庫]。
選取 [+ 變數群組]。
在 [屬性] 下,輸入 Release 作為變數群組名稱。
在 [變數] 下,選取 [+ 新增]。
針對您的變數名稱,輸入 WebAppName。 輸入上方建立的 App Service 執行個體的名稱作為值,例如 tailspin-space-game-web-4692。
重要
設定 App Service 執行個體的名稱,而非其主機名稱。 在此範例中,請輸入 tailspin-space-game-web-4692,而不是 tailspin-space-game-web-4692.azurewebsites.net。
重複此流程來新增另一個變數,名為 RegistryName,值為 Azure Container Registry 登入伺服器,例如 tailspinspacegame4692.azurecr.io。
選取 [管線權限],然後選取
+
符號以新增管線。 選取 mslearn-tailspin-spacegame-web-docker,以授權管線存取變數群組。選取頁面頂端的 [儲存] 以儲存工作。 變數群組看起來應該如下所示:
建立必要的服務連線
您將在此建立可讓 Azure Pipelines 存取 Azure 訂用帳戶的服務連線。 Azure Pipelines 會使用此服務連線,將網站部署至 App Service。 您已在上一個課程模組中建立類似的服務連線。 您也會建立 Docker 登錄連線,以將容器發佈至 Azure Container Registry。
重要
請確定您已使用相同的 Microsoft 帳戶登入 Azure 入口網站和 Azure DevOps。
在 Azure DevOps 中,移至 Space Game - web - Docker 專案。
從頁面底端,選取 [專案設定]。
在管線 下方,選取服務連線。
選取 [新增服務連線],然後選擇 [Azure Resource Manager],再選取 [下一步]。
接近頁面頂端的 [服務主體 (自動)]。 然後選取下一步。
填入下列欄位:
欄位 值 範圍層級 訂用帳戶 訂用帳戶 您的 Azure 訂用帳戶 資源群組 tailspin-space-game-rg 服務連線名稱 Resource Manager - Tailspin - Space Game 在此過程中,您可能會收到提示,提醒您登入 Microsoft 帳戶。
確認已選取 [為所有管線授與存取權限]。
選取 [儲存]。
Azure DevOps 會執行測試連線,以驗證其可以連線到您的 Azure 訂閱。 若 Azure DevOps 無法連線,您還有機會再登入一次。
選取 [新增服務連線],選擇 [Docker 登錄],然後選取 [下一步]。
在頁面頂端附近,選取 [Azure Container Registry]。
填入下列欄位:
欄位 值 訂用帳戶 您的 Azure 訂用帳戶 Azure Container Registry 選取稍早建立的登錄 服務連線名稱 容器登錄連線 確認已選取 [為所有管線授與存取權限]。
當完成時,選擇儲存。