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