[英]New EC2 instances launched with RunInstances use stale AMI from Launch Template , after aws Code Deploy updates the application in running instances
[英]How to automatically deploy code to newly created EC2 instances under ASG with codedeploy?
我在 ASG 下有 2 个 EC2 实例。 我在 codeDeploy 中创建了 Application1,其中 DeploymentGroup1 设置为使用自动缩放。
我面临的问题是,当供应新的 EC2 实例时,codedeploy 不会创建新的部署并且代码不会被推送到实例。 看起来甚至没有日志可以查看发生了什么。
当我为我的自动缩放组列出挂钩时,我确实看到了它们:
$ aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name SAND-web-ASG
{
"LifecycleHooks": [
{
"GlobalTimeout": 60000,
"HeartbeatTimeout": 600,
"AutoScalingGroupName": "SAND-web-ASG",
"LifecycleHookName": "CodeDeploy-managed-automatic-launch-deployment-hook-DeployToNewEC2underASG-...",
"NotificationMetadata": "....",
"DefaultResult": "ABANDON",
"NotificationTargetARN": "arn:aws:sqs:us-west-1:blabla:blahh-us-west-1-prod-default-autoscaling-lifecycle-hook",
"LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING"
}
]
}
这里有什么遗漏或错误吗? 这些不是自定义的,它们是由 codedeploy 创建的。
我按照指南使用 ASG 设置 codedeploy并且创建了所有内容但是由于某种原因当创建新实例时 codedeploy 不会创建新部署..我有点迷路为什么..
我的服务角色有 2 个 IAM 策略:
1 - 来自亚马逊 AWSCodedeployRole 的默认值
2 - 具有以下权限的 codePipelinePolicy(自定义):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:CompleteLifecycleAction",
"autoscaling:DeleteLifecycleHook",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeLifecycleHooks",
"autoscaling:PutLifecycleHook",
"autoscaling:RecordLifecycleActionHeartbeat",
"autoscaling:CreateAutoScalingGroup",
"autoscaling:UpdateAutoScalingGroup",
"autoscaling:EnableMetricsCollection",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribePolicies",
"autoscaling:DescribeScheduledActions",
"autoscaling:DescribeNotificationConfigurations",
"autoscaling:DescribeLifecycleHooks",
"autoscaling:SuspendProcesses",
"autoscaling:ResumeProcesses",
"autoscaling:AttachLoadBalancers",
"autoscaling:PutScalingPolicy",
"autoscaling:PutScheduledUpdateGroupAction",
"autoscaling:PutNotificationConfiguration",
"autoscaling:PutLifecycleHook",
"autoscaling:DescribeScalingActivities",
"autoscaling:DeleteAutoScalingGroup",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:TerminateInstances",
"tag:GetTags",
"tag:GetResources",
"sns:Publish",
"cloudwatch:DescribeAlarms",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeInstanceHealth",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
],
"Resource": "*"
}
]
}
我是不是在这里遗漏了什么,或者可能有什么我没有看到的错误(愚蠢的错误)?
任何建议真的很感激。 谢谢你,欧内斯特
根据您的描述,我没有看到您提到已成功部署到您的应用程序。 在扩展期间,CodeDeploy 将尝试部署应用程序的目标修订版,但如果未找到任何版本,则它根本不会发布部署,这将导致您看到的问题。 您应该执行部署以更新应用程序的目标修订版,然后尝试向上扩展并查看是否可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.