如何使用代码部署自动将代码部署到 ASG 下新创建的 EC2 实例?



我在 ASG 下有 2 个 EC2 实例。我在 codeDeploy 中使用设置为使用自动缩放的部署组 1 创建了应用程序 1。

我面临的问题是,当预置新的 EC2 实例时,代码部署不会创建新的部署,并且代码不会推送到实例。看起来甚至没有日志可以查看正在发生的事情。

当我为自动缩放组列出挂钩时,我确实看到了它们:

$ 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"
}
]
}

这里有什么遗漏或错误吗??这些不是自定义的,这些是由代码部署创建的。

我按照指南使用 ASG 设置代码部署,并且创建了所有内容,但由于某种原因,当创建新实例时,codedeploy 不会创建新的部署.. 我有点迷茫为什么..

我的服务角色有 2 个 IAM 策略:

1 - 来自 Amazon AWS 的默认值

2 - 具有以下权限的代码管道策略(自定义(:

{
"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 将尝试部署应用程序的目标修订版,但如果未找到任何修订版,则根本不会发出部署,这将导致您看到的问题。应执行部署以更新应用程序的目标修订,然后尝试纵向扩展,看看是否可以解决问题。

相关内容

  • 没有找到相关文章

最新更新