步骤 2. 创建应用程序修订版本 - AWS CodeDeploy
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 2. 创建应用程序修订版本

在这一步中,您将创建要部署到本地实例的示例应用程序修订。

因为很难知道已安装哪些软件和功能—或者允许您的组织策略安装—在您的本地实例中,我们在这里提供的示例应用程序修订版只是使用批次脚本(对于 Windows Server)或shell脚本 Ubuntu Server 和 RHEL)将文本文件写入本地实例上的位置。每个文件都写入一个文件 CodeDeploy 部署生命周期事件,包括 安装后安装应用程序启动,和 验证器副本. 在 前进安装 DeploymentLifecycleEvent(部署生命周期事件),将运行一个脚本,以删除在此样本之前部署过程中写入的旧文件,并在您的本地实例上创建用于写入新文件的位置。

注意

如果出现以下任何情况,此示例应用程序修订可能无法部署:

  • 在本地实例上启动 CodeDeploy 代理的用户账户无权执行脚本。

  • 用户账户无权在脚本中列出的位置创建或删除文件夹。

  • 用户账户无权在脚本中列出的位置创建文本文件。

注意

如果您配置 Windows Server 实例,并希望部署不同的样本,您可能希望使用 步骤 2. 配置源内容以部署到 Windows Server Amazon EC2 实例教程 部署“Hello,World!” 应用程序 CodeDeploy (Windows Server) 教程。

如果您配置 RHEL 实例,并希望部署不同的样本,您可能希望使用 步骤 2. 配置将要部署的源内容配置到 Amazon Linux 或 Red Hat Enterprise Linux Amazon EC2 实例教程 将Wordpress部署到 Amazon EC2 实例(Amazon Linux 或 Red Hat Enterprise Linux 和 Linux, OS X, or Unix) 教程。

目前, 没有替代示例。Ubuntu Server.

  1. 在您的开发计算机上,创建名为 CodeDeployDemo-OnPrem 的子目录 (子文件夹) 来存储示例应用程序修订的文件,然后切换到该子文件夹。在此示例中,我们假设您将使用 c:\temp 文件夹作为用于 Windows Server 或 /tmp 文件夹作为用于 Ubuntu Server 和 RHEL. 如果您使用其他文件夹,请务必在整个教程中使用该文件夹取代我们提供的文件夹:

    对于 Windows:

    mkdir c:\temp\CodeDeployDemo-OnPrem cd c:\temp\CodeDeployDemo-OnPrem

    对于 Linux, OS X, or Unix:

    mkdir /tmp/CodeDeployDemo-OnPrem cd /tmp/CodeDeployDemo-OnPrem
  2. CodeDeployDemo-OnPrem 子文件夹,使用文本编辑器创建名为 appspec.ymlinstall.txt:

    appspec.yml 对于 Windows Server:

    version: 0.0 os: windows files: - source: .\install.txt destination: c:\temp\CodeDeployExample hooks: BeforeInstall: - location: .\scripts\before-install.bat timeout: 900 AfterInstall: - location: .\scripts\after-install.bat timeout: 900 ApplicationStart: - location: .\scripts\application-start.bat timeout: 900 ValidateService: - location: .\scripts\validate-service.bat timeout: 900

    appspec.yml (对于 Ubuntu Server 和 ):RHEL:

    version: 0.0 os: linux files: - source: ./install.txt destination: /tmp/CodeDeployExample hooks: BeforeInstall: - location: ./scripts/before-install.sh timeout: 900 AfterInstall: - location: ./scripts/after-install.sh timeout: 900 ApplicationStart: - location: ./scripts/application-start.sh timeout: 900 ValidateService: - location: ./scripts/validate-service.sh timeout: 900

    有关 AppSpec 文件的更多信息,请参阅将应用程序规范文件添加到 CodeDeploy 的修订和。CodeDeploy AppSpec File 参考.

    install.txt:

    The Install deployment lifecycle event successfully completed.
  3. 根据 CodeDeployDemo-OnPrem 子文件夹,创建 scripts 子文件夹,然后切换到:

    对于 Windows:

    mkdir c:\temp\CodeDeployDemo-OnPrem\scripts cd c:\temp\CodeDeployDemo-OnPrem\scripts

    对于 Linux, OS X, or Unix:

    mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts cd /tmp/CodeDeployDemo-OnPrem/scripts
  4. scripts 子文件夹,使用文本编辑器创建名为 before-install.batafter-install.batapplication-start.bat,和 validate-service.bat 对于 Windows Server,或 before-install.shafter-install.shapplication-start.sh,和 validate-service.sh 对于 Ubuntu Server 和 RHEL:

    对于 Windows Server:

    before-install.bat:

    set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample if exist %FOLDER% ( rd /s /q "%FOLDER%" ) mkdir %FOLDER%

    after-install.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt

    application-start.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt

    validate-service.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt

    对于 Ubuntu Server 和 RHEL:

    before-install.sh:

    #!/bin/bash export FOLDER=/tmp/CodeDeployExample if [ -d $FOLDER ] then rm -rf $FOLDER fi mkdir -p $FOLDER

    after-install.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt

    application-start.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt

    validate-service.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt unset FOLDER
  5. 对于 Ubuntu Server 和 RHEL 只有,确保四个shell脚本具有执行权限:

    chmod +x ./scripts/*