使用CodeDeploy环境变量_devc++环境变量配置

使用CodeDeploy环境变量_devc++环境变量配置

精选文章moguli202025-02-21 12:59:0712A+A-

AWS CodeDeploy是AWS提供的一项服务,可以帮助客户快速可靠地将应用部署到亚马逊EC2实例或本地服务器中。想要了解此项服务的更多信息,请登录AWS CodeDeploy主页或是查阅AWS CodeDeploy文档。

当你使用AWS CodeDeploy服务部署应用时,部署过程涉及一系列预先定义好的名为deployment lifecycle events(部署周期事件)的阶段。这些事件为你提供一个机会来运行脚本(或挂钩),构成部署过程的一部分。想要了解更多关于如何指定与周期事件相对应的脚本的信息,请参见AppSpec File Reference中的hooks部分。在本博客中,我们将会聚焦于如何使用环境变量来自定义这些脚本。

环境变量

客户们一直在寻求一种方法来提供关于部署的,并可被脚本使用的上下文信息。AWS CodeDeploy环境变量可以使你找到这一方法。AWS CodeDeploy目前支持以下环境变量:

 1.  LIFECYCLE_EVENT : This variable contains the name of the lifecycle event associated with the script.
 2.  DEPLOYMENT_ID :  This variables contains the deployment ID of the current deployment.
 3.  APPLICATION_NAME :  This variable contains the name of the application being deployed. This is the name the user sets in the console or AWS CLI.
 4.  DEPLOYMENT_GROUP_NAME :  This variable contains the name of the deployment group. A deployment group is a set of instances associated with an application that you target for a deployment.

在执行脚本时,AWS CodeDeploy主机代理将会替代所有指向这些环境变量的引用。环境变量的一个典型的使用场景是根据部署组名称配置端口号。让我们以适用于AWS CodeDeploy的Linux样例应用为例来进行说明。该样例应用可以从GitHub和S3获得。该样例安装了Apache,并将一个简单的index.html文件拷贝到了根目录下。假设你有两个部署组:Staging和Production。你想将一个修正部署到Staging部署组中,并在将该应用推入到Production部署组前对其进行测试。但是,在Staging部署组中,Apache在端口9090运行,在Production部署组中在端口80运行。你不用创建两个包含不同安装脚本的修正,只需在脚本中根据部署组使用环境变量来自定义Apache端口。你将会在install_dependencies.sh挂钩脚本中使用到下面的代码片段。将以下各行行添加到yum install -y httpd之后。

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ] then sed -i -e 's/Listen
    80/Listen 9090/g' /etc/httpd/conf/httpd.conf fi

环境变量的再一个使用场景就是根据部署组设置日志级别。你需要使用下面的代码片段:

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ]
then
    sed -i -e 's/LogLevel warn/LogLevel debug/g' /etc/httpd/conf/httpd.conf
fi

让我们来进一步展示一下,如何使用环境变量来自定义index.html文件。要实现这一过程,我们需要一个AfterInstall脚本,如下图所示:

#!/usr/bin/python

import os

strToSearch="

This application was deployed using AWS CodeDeploy.

" strToReplace="

This page for "+os.environ['APPLICATION_NAME']+" application and "+os.environ['DEPLOYMENT_GROUP_NAME']+" deployment group was generated by a "+os.environ['LIFECYCLE_EVENT']+" script during "+os.environ['DEPLOYMENT_ID']+" deployment.

" fp=open("/var/www/html/index.html","r") buffer=fp.read fp.close fp=open("/var/www/html/index.html","w") fp.write(buffer.replace(strToSearch,strToReplace)) fp.close

Scripts文件夹中,将该文件保存为AfterInstall.py。你也必须修改appspec.yml文件来适配这一新的挂钩脚本。在包含ApplicationStop:的这一行前面添加如下所示的各行:

AfterInstall:
    - location: scripts/AfterInstall.py
      timeout: 300
      runas: root

分发证书

环境变量是根据上下文信息(例如,应用名称或部署组名称)自定义脚本的好方法。环境变量的设计初衷并不是传递AWS证书或其他敏感数据。本帖是AWS Security Blog中的一篇,旨在向你展示如何使用IAM角色安全地将AWS证书分发到亚马逊EC2实例中。

原文链接:
http://blogs.aws.amazon.com/application-management/post/Tx1PX2XMPLYPULD/Using-CodeDeploy-Environment-Variables?adbsc=
social_launches_20150529_46690356&adbid=604403221826686976&adbpl=tw&adbpr=66780587

( 翻译/吕东梅 责编/王鑫贺 )

订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!

AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2