三大部分:要部署的內容 --> 部署的配置 --> 更新的lambda函數版本服務器
部署的流程:上傳修訂的應用程序-->建立一個應用程序-->指定部署組-->指定部署的配置-->指定一個appspec文件-->進行部署-->檢查部署結果-->若是出現問題再根據須要從新部署。app
部署前提:負載均衡
在建立codedeploy部署組時,必須指定包含ECS服務的ECS集羣;函數
codedeploy必須已經啓用ECS服務,默認狀況下,ECS部署已啓用ECS服務,當建立部署組時須要選擇部署ECS集羣的ECS服務;spa
在要隨ECS部署一塊兒更新的ECS服務必須使用ELB,可使用 應用程序負載均衡器 或 Network Load Balancer。官方建議使用 應用程序負載均衡器,以即可以利用動態端口映射和基於路徑的路由和優先級規則等功能。在建立 CodeDeploy 應用程序的部署組時,須要指定負載均衡器;代理
在建立部署組時,您須要指定一個或兩個偵聽器,偵聽器是負載均衡器將流量定向到目標組的。(若是使用ECS控制檯建立ECS服務,系統建立偵聽器)code
一個ECS部署須要2個目標組,一個用於ECS程序的原始任務集,一個用於ECS程序的替換任務集。在部署過程當中,codedeploy會建立一個替換的任務集,並將流量替換到新的任務集,在建立部署組時須要指定目標組。(在部署期間,CodeDeploy 會肯定哪一個目標組與 ECS 服務中狀態爲 PRIMARY
(這是原始任務集)的任務集關聯,並將一個目標組與其關聯,而後將另外一個目標組與替換任務集關聯。若是執行其餘部署,則與當前部署的原始任務集關聯的目標組將與下一個部署的替換任務集關聯)。orm
須要在 CodeDeploy 應用程序的 AppSpec file中指定任務定義的 ARN(運行包含 ECS 應用程序的 Docker 容器須要任務定義);教程
須要在codedeploy應用程序的appspec file中指定容器的名稱,appapec file中指定的容器必須是ECS任務定義的之一。(Docker 容器 包含您的軟件應用程序須要運行的全部內容。負載均衡器將流量定向到 Amazon ECS 應用程序任務集中的容器);事件
在ECS部署期間,負載均衡器會將流量定向到您 CodeDeploy 應用程序的 AppSpec file所指定容器上的端口,須要在 CodeDeploy 應用程序的 AppSpec file中指定端口。
部署組件:要部署的內容 --> 部署的配置 --> ECS的替換任務集
部署工做流程:建立一個ECS部署,並將部署控制器設置爲codedeploy--> 建立一個codedeploy應用程序-->建立一個部署組-->指定一個APPspec file-->部署-->檢查部署結果-->出現問題再回到部署環節
部署組件:要部署的內容--> 部署的配置 --> 部署組和縮放組
主要的部署工做流程:建立一個應用程序-->指定部署組-->指定部署的配置-->更新須要部署的內容-->部署-->檢查部署-->出現問題再回到部署環節
步驟詳解:
1.經過指定惟一表示您要部署的應用程序修訂和表示應用程序的計算平臺的名稱來建立應用程序;
2.設置部署組時,要指定部署類型和要部署應用程序修訂的實例。就地部署將使用最新的應用程序修訂更新實例。藍/綠部署向負載均衡器註冊部署組的一組替換實例並取消註冊原始實例、能夠指定應用於實例的標籤或 Amazon EC2 Auto Scaling 組名稱、在全部狀況下實例必須配置爲在部署中使用(即,它們必須已標記或屬於 Amazon EC2 Auto Scaling 組),而且已安裝並運行 CodeDeploy 代理、AWS提供了一個 AWS CloudFormation 模板,您可以使用該模板基於 Amazon Linux 或 Windows Server 快速設置 Amazon EC2 實例,還提供了獨立的 CodeDeploy 代理、配置Amazon SNS 通知 — 建立觸發器,以便在部署和實例中發生指定的事件(例如,成功或失敗事件)時,向 Amazon SNS 主題的訂閱者發送通知、基於警報的部署管理 — 實現 Amazon CloudWatch 警報監控,以在指標超出或低於 CloudWatch 中設置的閾值時中止部署、自動部署回滾 — 配置部署,使之在部署失敗或達到警報閾值時自動回滾到已知良好的版本。
3.指定部署配置,以指明多少實例要同時部署應用程序修訂並描述成功和失敗的條件;
4.將應用程序修訂上傳到 Amazon S3 或 GitHub。除了要部署的文件和要在部署期間運行的全部腳本外,您還必須包含application specification file(AppSpec file)。該文件包含部署說明,例如,要將文件複製到的每一個實例上的位置,以及運行部署腳本的時間。
5.將應用程序修訂部署到部署組。部署組中每一個實例的 CodeDeploy 代理將您的應用程序修訂從 Amazon S3 或 GitHub 複製到該實例。而後,CodeDeploy 代理將取消捆綁修訂,使用 AppSpec file將相應文件複製到指定的位置並執行任何部署腳本。。
6.檢查部署結果
7.從新修訂,從新部署。
注意:如下是開始前須要作的{
您須要先設置實例,而後才能首次部署應用程序修訂。若是一個應用程序修訂須要三個生產服務器和兩個備份服務器,您將啓動或使用五個實例。
要手動預配實例,請執行如下操做:
在實例上安裝 CodeDeploy 代理。CodeDeploy 代理可安裝在 Amazon Linux、Ubuntu Server、RHEL 和 Windows Server 實例上。
若是要使用標籤來標識部署組中的實例,請啓用標記。CodeDeploy 依賴標籤來標識實例並將其分組到 CodeDeploy 部署組。儘管入門教程同時使用了鍵和值,可是您能夠只使用鍵或值爲部署組定義標籤。
啓動附加有 IAM 實例配置文件的 EC2 實例。IAM 實例配置文件必須附加到啓動的 EC2 實例,以便讓 CodeDeploy 代理驗證該實例的身份。
建立服務角色。提供服務訪問權,以便 CodeDeploy 能夠展開您的 AWS 帳戶中的標籤。
對於初始部署,AWS CloudFormation 模板將爲您完成全部這些操做。它基於已安裝 CodeDeploy 代理的 Amazon Linux 或 Windows Server 建立並配置單個新 Amazon EC2 實例。
注意
對於藍/綠部署,您能夠選擇使用您已有的用於替換環境的實例,或者也能夠選擇讓 CodeDeploy 在部署過程當中爲您預置新實例}