本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於的 CodeDeploy 示例 CodeBuild
此範例指示 AWS CodeBuild 使用 Maven 產生名為 my-app-1.0-SNAPSHOT.jar
的單一 JAR 檔案,做為組建輸出。然後,此示例使用 CodeDeploy 將 JAR 檔案部署到 Amazon Linux 執行個體。您也可以使用AWS CodePipeline來自動使用 CodeDeploy 將 JAR 檔案部署到 Amazon Linux 執行個體。此範例是根據 Apache Maven 網站上的 Maven in 5 Minutes
執行此範例可能會對您的 AWS 帳戶收取費用。收費的項目可能包括 CodeBuild 和AWS與亞馬遜 S3 相關的資源和操作,AWS KMS、 CloudWatch 日誌和 Amazon EC2。如需詳細資訊,請參閱「」CodeBuild 定價
執行範例
如何執行此範例
-
下載並安裝 Maven。如需詳細資訊,請參閱 Apache Maven 網站上的下載 Apache Maven
和安裝 Apache Maven 。 -
切換至您本機電腦或執行個體上的空白目錄,然後執行此 Maven 命令。
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
如果成功,則會建立此目錄結構和檔案。
. └── my-app ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
-
建立檔案並輸入此內容。將檔案命名為
buildspec.yml
,然後新增至my-app
目錄。version: 0.2 phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn test post_build: commands: - echo Build completed on `date` - mvn package artifacts: files: - target/my-app-1.0-SNAPSHOT.jar - appspec.yml discard-paths: yes
-
建立檔案並輸入此內容。將檔案命名為
appspec.yml
,然後新增至my-app
目錄。version: 0.0 os: linux files: - source: ./my-app-1.0-SNAPSHOT.jar destination: /tmp
完成時,您的目錄結構和檔案應該如下所示。
. └── my-app ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
-
建立 ZIP 檔案,其中包含
my-app
,然後將 ZIP 文件上傳到AWS CodeBuild和 CodeDeploy,例如 S3 輸入存儲桶或 GitHub 或位桶存儲庫。重要 如果您想要使用 CodePipeline 來部署產生的組建輸出成品,則不能將原始碼上傳到 Bitbucket 儲存庫。
請勿添加
my-app
設定到 ZIP 檔案,僅新增my-app
。ZIP 檔案應該包含這些目錄和檔案:. └──
CodeDeploySample.zip
├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java -
遵循建立組建專案中的步驟建立組建專案。
如果您使用 AWS CLI 來建立組建專案,則
create-project
命令的 JSON 格式輸入可能類似如下。(以您自己的值取代預留位置。){ "name": "sample-codedeploy-project", "source": { "type": "S3", "location": "codebuild-
region-ID
-account-ID
-input-bucket/CodeDeploySample
.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID
-account-ID
-output-bucket", "packaging": "ZIP", "name": "CodeDeployOutputArtifact
.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID
:role/role-name
", "encryptionKey": "arn:aws:kms:region-ID
:account-ID
:key/key-ID
" } -
如果您打算以 CodeDeploy 部署建置輸出成品,請遵循執行建置。否則,請跳過這個步驟。(這是因為如果您打算以 CodePipeline 部署建置輸出成品, CodePipeline 使用 CodeBuild 自動運行構建。)
-
完成使用 CodeDeploy 的設定步驟,包括:
-
授予 IAM 使用者存取的權限 CodeDeploy 與AWS服務和行動 CodeDeploy 取決於。如需詳細資訊,請參閱「」預配 IAM 使用者中的AWS CodeDeploy使用者指南。
-
創建或標識要啟用的服務角色 CodeDeploy 來識別部署組建輸出成品的實例。如需詳細資訊,請參閱「」建立 CodeDeploy 的服務角色中的AWS CodeDeploy使用者指南。
-
建立或識別 IAM 執行個體描述檔,讓您的執行個體能夠存取 S3 輸入儲存貯體或 GitHub 儲存庫,該儲存庫包含建置輸出成品。如需詳細資訊,請參閱「」為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔中的AWS CodeDeploy使用者指南。
-
-
建立或標識與 CodeDeploy ,其中部署建置輸出成品。如需詳細資訊,請參閱「」使用實例進行 CodeDeploy中的AWS CodeDeploy使用者指南。
-
建立或識別 CodeDeploy 應用程式和部署羣組。如需詳細資訊,請參閱「」使用 CodeDeploy 創建應用程序中的AWS CodeDeploy使用者指南。
-
將組建輸出成品部署至執行個體。
若要使用 CodeDeploy 來部署,請參使用 CodeDeploy 部署修訂中的AWS CodeDeploy使用者指南。
若要使用 CodePipeline 來部署,請參使用 CodePipeline 與 CodeBuild 結合使用。
-
部署完成之後,若要尋找組建輸出成品,請登入執行個體,然後在
/tmp
目錄中尋找名為my-app-1.0-SNAPSHOT.jar
的檔案。
相關資源
如需 AWS CodeBuild 入門的相關資訊,請參閱使用主控台開始使用 AWS CodeBuild。
如需有關針對 CodeBuild 中的問題進行故障診斷的資訊AWS CodeBuild 疑難排解。
如需 CodeBuild 中配額的詳細資訊,請參AWS CodeBuild 的配額。