gpt4 book ai didi

aws-cloudformation - EcsService 下类后不稳定

转载 作者:行者123 更新时间:2023-12-01 11:17:15 25 4
gpt4 key购买 nike

我从头开始编写了一个 cloudformation JSON 文件,但我无法部署堆栈,并且我没有从 AWS 获得任何关于原因的信息...

它在服务CREATE_IN_PROGRESS处卡住了4/5小时,然后它说服务不稳定并回滚。

当我检查集群时,它说它处于“事件”状态,并且从 AWS 仪表板看来一切正常。

我猜容器遇到了问题,或者健康检查可能出了问题,但我没有从 cloudformation 获得任何信息,有没有办法获取更多有关 4/5 期间发生情况的日志小时?

这是我的完整 JSON:

{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "test",
"Resources": {
"InstanceSecurityGroupOpenWeb": {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupName" : "test-open-web",
"GroupDescription" : "Allow http to client host",
"VpcId" : "vpc-89a8cfef",
"SecurityGroupIngress" : [{
"IpProtocol" : "tcp",
"FromPort" : "80",
"ToPort" : "80",
"CidrIp" : "0.0.0.0/0"
}],
"SecurityGroupEgress" : [{
"IpProtocol" : "tcp",
"FromPort" : "80",
"ToPort" : "80",
"CidrIp" : "0.0.0.0/0"
}]
}
},

"InstanceSecurityGroupOpenFull": {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupName" : "test-open-full",
"GroupDescription" : "Allow http to client host",
"VpcId" : "vpc-89a8cfef",
"SecurityGroupIngress" : [{
"IpProtocol" : "tcp",
"FromPort" : "0",
"ToPort" : "65535",
"CidrIp" : "0.0.0.0/0"
}],
"SecurityGroupEgress" : [{
"IpProtocol" : "tcp",
"FromPort" : "80",
"ToPort" : "80",
"CidrIp" : "0.0.0.0/0"
}]
}
},

"LoadBalancer" : {
"Type": "AWS::ElasticLoadBalancingV2::LoadBalancer",
"DependsOn": [
"InstanceSecurityGroupOpenWeb",
"InstanceSecurityGroupOpenFull"
],
"Properties": {
"Name": "testalb",
"Scheme" : "internal",
"Subnets" : [
"subnet-aaaaaaaa",
"subnet-bbbbbbbb",
"subnet-cccccccc"
],
"LoadBalancerAttributes" : [
{ "Key" : "idle_timeout.timeout_seconds", "Value" : "50" }
],
"SecurityGroups": [
{ "Ref": "InstanceSecurityGroupOpenWeb" },
{ "Ref" : "InstanceSecurityGroupOpenFull" }
]
}
},

"TargetGroup" : {
"Type" : "AWS::ElasticLoadBalancingV2::TargetGroup",
"DependsOn": [
"LoadBalancer"
],
"Properties" : {
"Name": "web",
"Port": 3000,
"TargetType": "ip",
"Protocol": "HTTP",
"HealthCheckIntervalSeconds": 30,
"HealthCheckProtocol": "HTTP",
"HealthCheckTimeoutSeconds": 10,
"HealthyThresholdCount": 4,
"Matcher" : {
"HttpCode" : "200"
},
"TargetGroupAttributes": [{
"Key": "deregistration_delay.timeout_seconds",
"Value": "20"
}],
"UnhealthyThresholdCount": 3,
"VpcId": "vpc-aaaaaaaa"
}
},

"LoadBalancerListener": {
"Type": "AWS::ElasticLoadBalancingV2::Listener",
"DependsOn": [
"TargetGroup"
],
"Properties": {
"DefaultActions": [{
"Type": "forward",
"TargetGroupArn": {
"Ref": "TargetGroup"
}
}],
"LoadBalancerArn": {
"Ref": "LoadBalancer"
},
"Port": 80,
"Protocol": "HTTP"
}
},

"EcsCluster": {
"Type": "AWS::ECS::Cluster",
"DependsOn": [
"LoadBalancerListener"
],
"Properties": {
"ClusterName": "test"
}
},

"EcsTaskRole": {
"Type":"AWS::IAM::Role",
"Properties":{
"AssumeRolePolicyDocument": {
"Statement": [
{
"Effect":"Allow",
"Principal": {
"Service": [
"ecs.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Path":"/",
"Policies": [
{
"PolicyName": "ecs-task",
"PolicyDocument": {
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:**",
],
"Resource": "*"
}
]
}
}
]
}
},

"WebServerTaskDefinition": {
"Type": "AWS::ECS::TaskDefinition",
"DependsOn": [
"EcsCluster",
"EcsTaskRole"
],
"Properties": {
"ExecutionRoleArn": {
"Ref": "EcsTaskRole"
},
"RequiresCompatibilities": [
"FARGATE"
],
"NetworkMode": "awsvpc",
"Cpu": "1024",
"Memory": "2048",
"ContainerDefinitions": [
{
"Name": "test-web",
"Image": "xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/test-web:latest",
"Cpu": "1024",
"Memory": "2048",
"PortMappings": [
{
"ContainerPort": "80",
"HostPort": "80"
}
],
"Essential": "true"
}]
}
},

"EcsService": {
"Type": "AWS::ECS::Service",
"DependsOn": [
"WebServerTaskDefinition"
],
"Properties": {
"Cluster": {
"Ref": "EcsCluster"
},
"DesiredCount": "1",
"DeploymentConfiguration": {
"MaximumPercent": 100,
"MinimumHealthyPercent": 0
},
"LoadBalancers": [
{
"ContainerName": "test-web",
"ContainerPort": "80",
"TargetGroupArn": {
"Ref": "TargetGroup"
}
}
],
"NetworkConfiguration": {
"AwsvpcConfiguration": {
"AssignPublicIp": "DISABLED",
"SecurityGroups": [
{ "Ref": "InstanceSecurityGroupOpenWeb" },
{ "Ref": "InstanceSecurityGroupOpenFull" }
],
"Subnets": [
"subnet-aaaaaaaa",
"subnet-bbbbbbbb",
"subnet-cccccccc"
]
}
},
"TaskDefinition": {
"Ref": "WebServerTaskDefinition"
}
}
}

}
}

最佳答案

进入您的ECS主页,找到您的集群-EcsCluster

在仪表板类型的页面上,您将看到服务和事件/待处理任务。

如果您进一步深入 EcsCluster 内部

  • 在“服务”选项卡上点击 EcsService
  • 转到表格中的“任务”选项卡,您将看到“任务状态”正在运行/已停止
  • 点击“已停止”

您应该能够看到它停止的原因。

关于aws-cloudformation - EcsService 下类后不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49175840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com