cod*_*282 5 amazon-web-services aws-code-deploy
在屏幕截图下方,它似乎仅在一个可用区中成功。

我检查了codedeploy日志中是否有失败的实例,但发现有一个错误,我认为它被认为是本地实例。
2018-01-10 04:40:22 INFO [codedeploy-agent(2696)]:在前提配置文件不存在或不可读
2018-01-10 04:40:43错误[codedeploy-agent(2696)]:CodeDeploy实例代理服务:CodeDeploy实例代理服务:启动或运行期间出错:InstanceMetadata :: InstanceMetadataError-未提供未提供EC2实例和区域环境变量AWS_REGION。请使用环境变量AWS_REGION指定您的区域。
我已经搜索了大约三天的时间来解决此问题,但是AWS文档中没有提及。在生产环境中,我计划使用附加到自动缩放组的两个可用区。我想知道我是否忽略了CodeDeploy之外的其他内容。我应该检查什么?先感谢您。
[更新]我更新了ASG和ASG Config屏幕快照。没什么特别的,它是vanila和默认过程。我从AWS支持中心等待了5天,但仍在等待响应。
最后,我找到了为什么 codedeploy 在 Windows 2016 上跨多个可用区失败的原因。此外,这个问题似乎是 Windows 2016 EC2 本身的问题,而不是 ASG 或 codedeploy 的问题(我没有在 Linux 上测试过)。我发现有两种解决方案,
第一种方法是直观且方便的方法(GUI),第二种方法适合自动化 powershell 脚本。我已经确认这两种方法都可以成功部署到多个可用区。codedeployagent 记录的日志中没有错误。
更具体地说,codedeployagent在部署时留下了各种日志,我发现该代理似乎使用来自169.254.169.254的元信息。当我失败时,日志显示“您是本地实例。”。部署失败可能是因为实例无法获取元信息。在下面的文档中,我得到了很多帮助,并列出了我所有的解决方案。
https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html
特别是在文档中
.....在 Windows PowerShell 中,运行以下命令,以便系统安排脚本作为 Windows 计划任务运行。该脚本在下次启动期间运行一次,然后禁用这些任务再次运行......
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |