Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

Grant_Allen發表於2021-05-26

一,引言

     最近專案上讓開始學習AWS,作為一名合格的開發人員,當然也是學會利用Azure DevOps Pipeline 將應用程式部署到 AWS ECS(完全託管的容器編排服務)。我們要學會將應用程式部署到多雲的環境上,技多不壓身!!!!

     首先肯定的是,我們必須先依賴Azure DevOps 進行應用程式構建 docker images 。並且將 dockre image 推送到 AWS ECR(完全託管的容器登錄檔)

二,正文

1,建立AWS ECR 容器登錄檔

登陸到AWS 控制檯後,搜尋 ECR,在東京區 “ap-northeast-1” 建立私有映象倉庫

點選 “Create repository” 建立一個新的映象倉庫

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

輸入相關引數

Visibility settings:“Private”

Repository name:“cnbateblogweb”

點選 “Create repository” 建立映象倉庫

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

建立完成後,可以看到建立好的 “cnbateblogweb” 的私有映象倉庫資訊

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR2,建立AWS 訪問控制的Key

AWS 的訪問控制許可權設計的很全面,可以精細控制到具體某個服務的操作動作,我們如果想利用Azure DevOps Pipeline 推送映象到AWS ECR,那麼我們就需要配置 Service Connection。所以就需要我們提前配置好 AWS access_key 和 secret_key

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

我這邊為了方便演示,就直接為主賬號,也就是 root 賬號建立 access_key。(注意,如果是其他子賬號資訊,就要確保子賬號必須有push images 到 ECR 的許可權資訊)

點選控制檯在右上角的個人賬號,在下拉選擇項中點選 “My Security Credentials”。

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

展開Access Keys(access key ID and secret access key) ,點選 “Create New Access key”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

下載,儲存 Access key,並且檢視到剛剛建立好的機密資訊

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

3,設定 Azure DevOps Pipeline

前置條件1,需要安裝 “AWS Tookit for AzueDevOps” 到 Azure DevOps。Extensions for Visual Studio family of products | Visual Studio Marketplace

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

選擇將 “AWS Tookit for Azure DevOps” 安裝到 Azure DevOps,等待下載完成就可以了。

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

接下來我們需要登陸到 Azure DevOps 上建立新的專案

Project name:“CnBateBlogWeb_AWS”

Visibility:“Private”

Advanced Setting=》 Work item process:“Agile”

點選 “Create”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

建立好專案之後,我們先把連線到 AWS 的 Service Connection 配置好

點選 “Project setting”,設定服務連線。

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

選擇 “Pipeline =》Service connection”,並點選 "New service connection" 建立一個新的服務連線

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

選擇新的連線型別 “AWS”,點選 “Next”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

輸入前面在 AWS 控制檯上建立好的 access_key,secret_key 

service connection name:“CnBateBlogWeb_ServiceConnection”

點選 “Save” 進行儲存操作

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

接下來需要建立 Pipeline,選擇 “Pipelines”,點選 “Create Pipeline” 

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

選擇使用 “Use the classic editor” 建立 Pipeline

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

我們的測試專案是放在GitHub上的,大家可以自行選擇自己的專案的實現儲存倉庫,點選 “Continue”。

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

在選擇輸入搜尋 “docker”,並選擇 “Docker container” 後,點選 “Apply”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

因為我們要把構建好的 docker image 推送的 AWS ECR 中,所以我們就得先刪除掉預設的 “push an image” 這個task 

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

目前只留一個 "Build an image" 的就task,可以看到當前 Task 的引數資訊

Container Register 可以選擇:“Container Register”

Docker Register Service Connection 不需要新增(當前任務是構建 images,並且我們目標是AWS ECR,是不需要新增 Docker Register Service Connection)

Docker File 選擇專案中 dockerfile 檔案路徑。

Image Name :需要我們多多注意一下,當前構建的 images 映象的命名是  Repository 名稱+BuildId 

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

點選圖中的 “+”,新增新的Task

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

搜尋框輸入關鍵字 “ECR push”,選擇 “Amazon ECR Push”,並點選 “Apply”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

修改相關引數

Display name:“Push Image To AWS ECR”

AWS Credentials:“CnBateBlogWeb_ServiceConnection”

AWS Region 選擇:“Asia Pacific(Tokyo)[ap-northeast-1]”

Source Image Name:“$(image_name)/cnbateblogweb”

Source Image Tag:"$(Build.BuildId)"

Target Repository Name:“cnbateblogweb”(注意,這個名稱必須跟AWS 控制檯上建立的ECR 的名稱一致)

Target Repository Tag:“$(Build.BuildId)”

確定完引數後,點選 “Save & queue”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

選擇執行Pipeline 的代理池等資訊後,點選 “Run”

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

等待Pipeline執行完成後,可以看到執行成功

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

檢視詳細資訊得知,Azure DevOps 以及將映象Tag 為 28 的 “cnbateblogweb” 的映象推送到 AWS ECR 中了

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

我們可以回到AWS 控制檯檢視ECR的狀況

Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程式映象到AWS ECR

bingo !!!! 完成。?????????

三,結尾

     今天的操作有些騷,本來好好的講解Azure和 Azure DevOps  相關的內容,卻發了一篇AWS 相關的文章!!!!其實各位,AWS在全球所佔的份額還是很高的。不管是 Azure 還是 AWS,我們都是需要學習的。由條件的同學多練習練習,動手操作一番才能更熟練的掌握。關於今天的內容就差不多到此結束,下一篇我們進行講解如何利用 Azure DevOps 部署應用程式到 AWS ECS。

 

文章來自博主本人自己的部落格:https://allenmasters.com/post/2021/5/26/azure-devopsazure-devops-pipeline-aws-ecr

歡迎大家關注博主的部落格:https://allenmasters.com/

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章