本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CodeDeploy 的示例 CodeBuild
此示例指示 Amazon CodeBuild 使用 Maven 来生成一个名为 my-app-1.0-SNAPSHOT.jar
的 JAR 文件作为构建输出。然后,使用此示例将 JAR 文件部署 CodeDeploy 到亚马逊 Linux 实例。您也可以使用自动使用Amazon CodePipeline将 JAR 文件部署 CodeDeploy 到亚马逊 Linux 实例。该示例以 Apache Maven 网站上的 5 分钟学会 Maven
运行该示例可能会导致您的 Amazon 账户产生相关费用。其中包括与 Amazon S3 CodeBuild 、 CloudWatch Logs 和 Amazon EC2 相关的Amazon资源和操作可能产生的费用。Amazon KMS有关更多信息,请参阅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 文件,然后将该 ZIP 文件上传到和支持的源代码存储库类型,例如 S3 输入存储桶或 GitHub 或 Bitbucket 存储库。
my-app
Amazon CodeBuild CodeDeploy重要 如果您 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 -
请按照 创建构建项目 中的步骤创建构建项目。
如果您使用 Amazon 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 使用 CodeBuild 部署构建输出工件 CodePipeline,则会自动运行构建。)
-
完成设置步骤以供使用 CodeDeploy,包括:
-
向 IAM 用户授予访问权限, CodeDeploy Amazon服务和操作 CodeDeploy 视情况而定。有关更多信息,请参阅用户指南中的配置 IAMAmazon CodeDeploy 用户。
-
创建或标识服务角色 CodeDeploy 以识别其部署构建输出工件的实例。有关更多信息,请参阅《Amazon CodeDeploy用户指南》 CodeDeploy中的创建服务角色。
-
创建或识别 IAM 实例配置文件,使您的实例能够访问包含构建输出对象的 S3 输入存储段或 GitHub 存储库。有关更多信息,请参阅Amazon CodeDeploy用户指南中的 Amazon EC2 实例创建 IAM 实例配置文件。
-
-
创建或识别与构建输出工件部署 CodeDeploy 位置兼容的 Amazon Linux 实例。有关更多信息,请参阅Amazon CodeDeploy用户指南 CodeDeploy中的使用实例。
-
创建或确定 CodeDeploy 应用程序和部署组。有关更多信息,请参阅《Amazon CodeDeploy用户指南》 CodeDeploy中的使用创建应用程序。
-
将构建输出项目部署到实例。
要使用进行部署 CodeDeploy,请参阅《Amazon CodeDeploy用户指南》 CodeDeploy中的使用部署修订版。
要使用何种部署 CodePipeline,请参阅使用 CodePipeline 和 CodeBuild。
-
要在完成部署后查找构建输出项目,请登录到实例,然后在
/tmp
目录中查找名为my-app-1.0-SNAPSHOT.jar
的文件。
相关资源
有关 Amazon CodeBuild 入门的信息,请参阅通过控制台开始使用 Amazon CodeBuild。
有关中问题排的更多信息 CodeBuild,请参阅故障排除 Amazon CodeBuild。
有关中的配额的信息 CodeBuild,请参阅Amazon CodeBuild 的配额。