aws 自动缩放完整生命周期动作 --lifecycle-action-token ???????? --lifecycle-hook-name ReadyForSoftwareInstall --auto-scaling-group-name --lifecycle-action-result CONTINUE
所以我有一个名为 backend 的 Typescript 项目,其 package.json 中具有这样的依赖关系:
"dependencies": {
"@the-couple-game/helpers": "^1.0.0",
}
Run Code Online (Sandbox Code Playgroud)
助手(也是 Typescript)位于另一个文件夹中,其 package.json 如下所示:
{
"name": "@the-couple-game/helpers",
}
Run Code Online (Sandbox Code Playgroud)
因此,运行lerna bootstrap应该链接两者,并在后端的 node_modules 中安装@the- Couple-game/helpers,这是在本地执行的。
但是,使用 Codebuild 使用下面的 buildspec.yml 执行相同的操作(使用 --no-ci 因为我不想要 npm ci)不会在后端的 node_modules 中添加 @the- Couple-game/helpers 。因此,如果我运行后端的转换后的index.js,它会抱怨缺少模块。
version: 0.1
phases:
install:
commands:
- npm install -g lerna
pre_build:
commands:
- lerna bootstrap --no-ci --concurrency 4
build:
commands:
- lerna run build --concurrency 4
artifacts:
files:
- "**/*"
Run Code Online (Sandbox Code Playgroud)
目前,我必须在部署到 CodeDeploy 后手动执行 lerna 引导程序(使用从 appspec.yml 调用的脚本),以便它安装缺少的模块,但 Codebuild 不应该覆盖该部分吗? …
aws-code-deploy aws-codepipeline lerna aws-codebuild aws-code-deploy-appspec
我正在尝试使用 EC2 设置从 GitHub 到 AWS 的自动部署。我使用 CodeDeployServiceRole自动策略设置角色
按照教程:使用 AWS CodeDeploy 从 GitHub 部署应用程序后,我的部署在 ApplicationStop 事件中失败,在尝试几分钟后,错误代码为 HEALTH_CONSTRAINT。我不确定如何解决问题/在哪里查看。
在将无服务器 api 部署到 AWS lambda 期间,我收到如下错误消息:
错误:无法创建托管资源:服务员 StackCreateComplete 失败:服务员遇到终端故障状态:对于表达式“Stacks[].StackStatus”,我们匹配预期路径:“ROLLBACK_COMPLETE”至少一次
解决方案是什么以及如何解决这个问题?
amazon-web-services aws-cloudformation aws-code-deploy serverless aws-amplify
我的应用程序是使用elastic-beanstalkaws服务创建的,是否需要使用AWS CodeDeploy服务来部署我的应用程序?
目前我只做:
eb deploy myApp
Run Code Online (Sandbox Code Playgroud)
然后,不使用AWS CodeDeploy部署新的应用程序版本。所以,我做错什么了吗?
amazon-web-services amazon-elastic-beanstalk aws-code-deploy
我已经应用了这个:
它提到它将从 GitHub推送默认分支。
同一个 repo 中可能拥有的所有其他分支呢?
我可以以某种方式指定要部署的分支吗?
当我通过 Jenkins(代码部署插件)触发时,出现以下错误 -
No such file or directory - /opt/codedeploy-agent/deployment-root/edbe4bd2-3999-4820-b782-42d8aceb18e6/d-8C01LCBMG/deployment-archive/appspec.yml
Run Code Online (Sandbox Code Playgroud)
但是,如果我直接通过代码部署触发部署到同一个部署组中,并在S3中指定相同的zip(通过Jenkins触发器获得),则此步骤通过。
这是什么意思,我如何找到解决方法?我目前正在整合一些东西,因此需要同时通过代码部署和 Jenkins 进行部署。当我需要确保较小的单元运行良好时,我将运行代码部署触发部署。
更新
只是提到另一点,以防万一。我以前在同一个 ec2 实例上使用不同的 codedeploy“应用程序”和“部署组”,并直接使用 jenkins 和代码部署进行部署。为了解决一些问题(据称,由于部署失败,不允许覆盖现有文件),我删除了/opt/codedeploy-agent/deployment-root/<directory containing deployments>目录中的所有内容,试图按照这个答案中提到的内容进行操作。但是,请注意,我只删除了该目录中的项目。此后,我开始收到此错误 appspec.yml not found in deployment archive。所以,然后我创建了一个新的应用程序和部署组,从那时起,我就致力于它。
因此,要考虑的另一点是我是否应该做一些进一步的清理,如果 jenkins 触发的部署仍然受到这些删除的影响(即使它指的是新的应用程序和部署组)。
我正在尝试通过AWS从github存储库设置部署。
在这些步骤中,我遇到了一个问题:
http://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html#codedeploy-agent-operations-install-linux
Run Code Online (Sandbox Code Playgroud)
该命令失败:
wget https://bucket-name.s3.amazonaws.com/latest/install
Run Code Online (Sandbox Code Playgroud)
它返回:
[ec2-user@ip-172-31-11-55 ~]$ wget https://bucket-name.s3.amazonaws.com/latest/install
--2017-06-04 10:18:18-- https://bucket-name.s3.amazonaws.com/latest/install
Resolving bucket-name.s3.amazonaws.com (bucket-name.s3.amazonaws.com)... 54.231.114.146
Connecting to bucket-name.s3.amazonaws.com (bucket-name.s3.amazonaws.com)|54.231.114.146|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2017-06-04 10:18:18 ERROR 403: Forbidden.
Run Code Online (Sandbox Code Playgroud)
我已为我的实例允许所有端口用于入站/出站流量。
怎么了?
所以,我正在设置我的第一个使用 CodeDeploy (EC2 + S3) 的应用程序,我很难弄清楚如何在安装后运行脚本。
所以我在 AppSpec 文件中定义了一个 AfterInstall 钩子,引用我在项目目录中的 bash 脚本文件。当脚本中的命令运行时,我收到错误消息,指出找不到文件。所以我ls在这一切之前放了一个命令并检查了日志。
我的脚本文件在 CodeDeploy 代理文件夹中运行。我在测试时不小心创建了许多文件,但我希望它们在我的项目根文件夹中。
--Root
----init.sh
----requirements.txt
----server.py
Run Code Online (Sandbox Code Playgroud)
appspec.yml
version: 0.0
os: linux
files:
- source: ./
destination: /home/ubuntu/myapp
runas: ubuntu
hooks:
AfterInstall:
- location: init.sh
timeout: 600
Run Code Online (Sandbox Code Playgroud)
初始化文件
#!/bin/bash
ls
sudo apt install python3-pip
pip3 install -r ./requirements.txt
python3 ./server.py
Run Code Online (Sandbox Code Playgroud)
所以当ls被执行时,它不会列出我的项目根目录中的文件。我也试过 ${PWD} 而不是 ./ 但它没有用。它正在将脚本文件复制到代理文件夹并运行它。
请参阅此https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
这是写在上述文件的末尾
您在“挂钩”部分中指定的脚本位置相对于应用程序修订包的根目录。在前面的示例中,名为 RunResourceTests.sh 的文件位于名为 Scripts 的目录中。Scripts 目录位于包的根级别。
但显然它仅指 appspec 文件中的路径。
有人可以帮忙吗?这是正确的吗?我必须在脚本文件中使用硬编码的绝对路径吗?
amazon-ec2 amazon-web-services aws-code-deploy aws-code-deploy-appspec
我想创建一个 CodePipeline,它从 CodeCommit 源构建一个容器映像,然后以蓝/绿方式将新映像部署到我的 ECS 服务(EC2 启动类型)。
问题出在 BuildArtifact 的图像定义上。管道在部署阶段失败并出现错误:
"" 尝试从工件中读取图像工件文件时出现无效的操作配置异常:BuildArtifact。“”
如何正确配置“Amazon ECS(蓝/绿)”部署阶段,以便它可以使用最近创建的映像并部署它....通过替换 taskdef.json 中的占位符 IMAGE_NAME ?
任何提示高度赞赏:D
amazon-ecs blue-green-deployment aws-code-deploy aws-codepipeline aws-codebuild
aws-code-deploy ×10
amazon-ec2 ×1
amazon-ecs ×1
aws-amplify ×1
deployment ×1
jenkins ×1
lerna ×1
rhel ×1
serverless ×1