我想导出一些变量,例如环境名称和使用代码部署 Amazon 执行的脚本中的访问权限
我们有两个 AWS 帐户,称为 Dev 和 Prod。在开发帐户中,我们的代码构建、代码管道和代码部署服务是使用 S3 配置的。但是,在产品帐户中,正在为生产网站运行自动缩放组。根据我们的要求,我们希望通过跨帐户部署将代码从开发帐户部署到产品帐户。基本上,代码构建和代码管道将执行代码,并通过使用代码部署将其部署在 Prod 帐户的自动缩放组中。
有人可以给我们一些关于实现同样目标的见解吗?
谢谢
amazon-web-services amazon-iam aws-code-deploy aws-codepipeline aws-codebuild
根据以下错误消息,codedeploy 将我的存档文件夹复制到某个临时位置。我可以在部署存档文件夹后找到我的 archive.zip 文件夹。
CodeDeploy 代理在修订版相对路径“appspec.yml”的解压修订版目录中未找到 AppSpec 文件。该修订版本已解压到目录“/opt/codedeploy-agent/deployment-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deployment-archive”,并且需要 AppSpec 文件,但在路径“/”中找不到opt/codedeploy-agent/deployment-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deployment-archive/appspec.yml”。有关更多信息,请参阅 AWS 网站上的 AWS CodeDeploy Appspec 文档
但它在部署存档文件夹之后立即看起来是 appspec.yml 。但它位于deployment-archive/archive/appspec.yml
appspec.yml 和我的 war 文件都压缩在 S3 中
如何解决这个问题?
我正在通过CodeDeploy.logstash 配置在目标实例中进行部署/etc/logstash/。
这是 3 阶段的最后一步CodePipeline。
但是它失败并显示消息
部署失败,因为此位置已存在指定文件:/etc/logstash/pipelines.yml
如何指示CodeDeploy覆盖文件?
我正在使用 codeDeploy,当我运行时它会陷入进度模式。通过进一步研究这个问题,我发现它失败是因为AllowTraffic脚本。它只是说脚本失败。我查看了日志,但没有错误。AWS 文档还表明,这可能是运行状况检查问题,但我的两个实例在我的目标组中都运行良好。
奇怪的是,尽管状态失败,代码仍然被部署。
有人可以帮忙吗?
非常感谢
我正在使用集成到CodePipeline中的CodeDeploy。我正在尝试将映像从ecr部署到ecs。
整个基础设施是用CloudFormation构建的。
管道部署组的模板:
ApplicationName=cls.application.ApplicationName,
DeploymentGroupName='DeploymentGroup',
DeploymentConfigName='CodeDeployDefault.ECSAllAtOnce',
ServiceRoleArn=GetAtt(cls.role, 'Arn'),
AutoRollbackConfiguration={
'enabled': True,
'events': ['DEPLOYMENT_FAILURE', 'DEPLOYMENT_STOP_ON_ALARM', 'DEPLOYMENT_STOP_ON_REQUEST']
},
DeploymentStyle={
'deploymentType': 'BLUE_GREEN',
'deploymentOption': 'WITH_TRAFFIC_CONTROL'
},
BlueGreenDeploymentConfiguration={
'terminateBlueInstancesOnDeploymentSuccess': {
'action': 'TERMINATE',
'terminationWaitTimeInMinutes': 5
},
'deploymentReadyOption': {
'actionOnTimeout': 'CONTINUE_DEPLOYMENT',
},
},
LoadBalancerInfo= <Some irrelevant config>
EcsServices=[
{
'serviceName': 'WordpressService',
'clusterName': 'WordpressCluster'
},
]
Run Code Online (Sandbox Code Playgroud)
到目前为止 - 配置看起来非常简单。管道本身的配置包含 2 个阶段:
ArtifactStore=ArtifactStore(
Location='SomeS3Location',
Type='S3'
),
Name='WordpressPipeline',
RoleArn=GetAtt(cls.role, 'Arn'),
Stages=[
Stages(
Name='SourceStage',
Actions=[
Actions(
Name='SourceAction',
ActionTypeId=ActionTypeId(
Category='Source', …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-ecs aws-cloudformation aws-code-deploy amazon-ecr
文档说我应该在调用 codedeploy 时以 .yaml 或 .json 格式指定应用程序修订版。但是如何通过代码部署来部署实际的功能代码呢?
无法提供包含代码的 zip 文件。仅接受 json 和 yaml 文件。如何通过 codedeploy 实际更新/添加 lambda 函数代码?下图显示,即使通过 aws 控制台,我也只能指定 yaml 或 json appspec 文件。
我如何在这里实际部署我的功能代码? ![文本]()
我有一个Meteor应用程序,我正在使用CodeDeploy(本地构建 - > S3 - > CodeDeploy - > EC2)在EC2实例上进行部署.
我遇到了一个星期前没有的问题:在创建部署时,它在ApplicationStop步骤中失败并显示消息
[stderr]bash: /opt/codedeploy-agent/deployment-root/.../scripts/stop.sh: /bin/sh^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道这应该是Windows样式行结尾的问题,但它看起来不是
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh
~$ dos2unix stop.sh
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh
Run Code Online (Sandbox Code Playgroud)
如果我在十六进制编辑器中打开文件,行结尾看起来像0x0a,而不是0x0d0a(Windows样式).
00000000: 2321 2f62 696e 2f73 680a 736f 7572 6365 #!/bin/sh.source
00000010: 202f 686f 6d65 2f65 6332 2d75 7365 722f /home/ec2-user/
...
为了确定,我从S3下载了部署档案,提取并再次检查 - 行结尾确实如上所述.
这很奇怪,因为我一周前没有遇到问题,如果我尝试部署一周前成功部署的版本,就会发生同样的问题(!!)......即使它当时正在工作.
帮助赞赏!
[更新]:从我的stop.sh脚本中删除第一行/bin/sh,不会改变任何内容.我想sudo ln -s /bin/sh /bin/sh^M应该为一个肮脏的快速修复工作,但我想要一个更清洁的解决方案.:/
[更新2] …
我可以在Codedeploy下的AWS控制台中看到日志,当我选择部署然后单击时choose events,它们似乎被截断.如果我SSH到实例,那些codedeploy部署日志位于何处?
我看到登录/var/log/aws/codedeploy-agent,但那里的日志与CodeDeploy中的日志不匹配.
我在亚马逊Linux上运行.
我根据这篇文章设置了一切
https://aws.amazon.com/tw/blogs/apn/announcing-atlassian-bitbucket-support-for-aws-codedeploy/
这是我的环境:
实例(免费层与amazon linux)
- apache 2.4安装
安全组
- 只有22(只有我的ip可以访问)和80端口都打开了
Iptables停了
设置了2个角色
- 一个用于链接S3 < - > bitbucket(附加自定义策略)
- 一个角色用于部署组(附加AWSCodeDeployRole策略)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "codedeploy.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
试图部署的脚本是
https://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip
权限 / var/www/*由ec2-user拥有,拥有755权限
代理 服务codedeploy-agent status = AWS CodeDeploy代理作为PID 7200运行
线索: 我的s3存储桶中有一些zip文件被上传用于每次部署.
错误代码:HEALTH_CONSTRAINTS
任何人都知道部署失败的原因是什么?
update1使用iam配置文件重新启动实例后,可以部署应用程序.但它仍然失败,当我点击查看事件时,有如下日志:
Error CodeScriptFailed
Script Namescripts/install_dependencies
MessageScript at specified location: scripts/install_dependencies run as user root failed with …Run Code Online (Sandbox Code Playgroud) aws-code-deploy ×10
amazon-ec2 ×2
amazon-ecr ×1
amazon-ecs ×1
amazon-iam ×1
aws-lambda ×1
line-endings ×1