Azure DevOps(一)利用Azure DevOps Pipeline 構建應用程序鏡像到AWS ECR

一,引言

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

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

二,正文

1,創建AWS ECR 容器註冊表

登陸到AWS 控制檯後,搜索 ECR,在東京區 “ap-northeast-1” 創建私有鏡像倉庫

點擊 “Create repository” 創建一個新的鏡像倉庫

輸入相關參數

Visibility settings:“Private”

Repository name:“cnbateblogweb”

點擊 “Create repository” 創建鏡像倉庫

創建完成後,可以看到創建好的 “cnbateblogweb” 的私有鏡像倉庫信息

2,創建AWS 訪問控制的Key

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

我這邊爲了方便演示,就直接爲主賬號,也就是 root 賬號創建 access_key。(注意,如果是其他子賬號信息,就要確保子賬號必須有push images 到 ECR 的權限信息)

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

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

下載,保存 Access key,並且查看到剛剛創建好的機密信息

3,設置 Azure DevOps Pipeline

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

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

接下來我們需要登陸到 Azure DevOps 上創建新的項目

Project name:“CnBateBlogWeb_AWS”

Visibility:“Private”

Advanced Setting=》 Work item process:“Agile”

點擊 “Create”

創建好項目之後,我們先把連接到 AWS 的 Service Connection 配置好

點擊 “Project setting”,設置服務連接。

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

選擇新的連接類型 “AWS”,點擊 “Next”

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

service connection name:“CnBateBlogWeb_ServiceConnection”

點擊 “Save” 進行保存操作

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

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

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

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

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

目前只留一個 "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 

點擊圖中的 “+”,添加新的Task

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

修改相關參數

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”

選擇運行Pipeline 的代理池等信息後,點擊 “Run”

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

查看詳細信息得知,Azure DevOps 以及將鏡像Tag 爲 28 的 “cnbateblogweb” 的鏡像推送到 AWS ECR 中了

我們可以回到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 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章