Amazon web services 谁停止和启动ECS任务?并通知ECS服务
以下是应用程序的ECS任务定义:Amazon web services 谁停止和启动ECS任务?并通知ECS服务,amazon-web-services,amazon-ec2,amazon-cloudformation,amazon-ecs,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,Amazon Ecs,以下是应用程序的ECS任务定义: SomeappTaskDefinition: Type: "AWS::ECS::TaskDefinition" Properties: ContainerDefinitions: - Name: someapp Image: someaccounthub/someapp Memory: 450 Environment: - Nam
SomeappTaskDefinition:
Type: "AWS::ECS::TaskDefinition"
Properties:
ContainerDefinitions:
- Name: someapp
Image: someaccounthub/someapp
Memory: 450
Environment:
- Name: DJANGO_SETTINGS_MODULE
Value: someapp.settings.release
- Name: MYSQL_HOST
Value: { "Fn::GetAtt": ["DbInstance", "Endpoint.Address"] }
- Name: MYSQL_USER
Value: { "Ref": "DbUsername" }
- Name: MYSQL_PASSWORD
Value: { "Ref": "DbPassword" }
MountPoints:
- ContainerPath: /var/www/someapp
SourceVolume: webroot
Command:
- uwsgi
- "--socket /var/www/someapp/someapp.sock"
- "--chmod-socket=666"
- "--module someapp.wsgi"
- "--master"
- "--die-on-term"
- Name: nginx
Image: someaccounthub/someapp-nginx
Memory: 300
PortMappings:
- ContainerPort: "8000"
HostPort: "8000"
MountPoints:
- ContainerPath: /var/www/someapp
SourceVolume: webroot
Volumes:
- Name: webroot
Host:
SourcePath: /ecs/webroot
在ECS优化的ami实例(EC2)上启动。Docker守护程序正在ECS优化的ami实例(EC2)中运行 未包含创建ECS服务(
AWS::ECS::service
)和ECS群集(AWS::ECS::cluster
)的云信息代码,因为此查询不需要此代码
ECS服务-
AWS::ECS::service
资源类型
ECS实例-AWS::EC2::实例
资源类型
(一)
ECS服务是否负责在ECS实例上部署新的任务定义?通过与ECS实例中运行的ECS代理对话
(二)
在ECS实例中运行的ECS代理是否负责停止和启动当前正在运行的ECS任务(SomeappTaskDefinition
)?并告知服务由ECS服务决定
(三)
在ECS实例中运行的ECS代理是否负责向在ECS实例中运行的docker守护进程发出请求,以从docker repo中提取docker映像someaccthub/someapp
?在ECS任务开始时(是的,您的任务定义已配置了相应的ECR存储库版本。集群下的服务负责确保在EC2实例中启动并运行正确的任务
2) 是的,根据集群的定义,amazon/amazon ecs代理(也是EC2上的docker容器)将确保在EC2上运行正常的任务(docker容器)
3) 不完全是这样,代理只会确保保留相关任务定义的docker容器,即服务是在ECR中配置的。而且不去拿任何其他存储库。仅当您更新集群的服务时,它才会更新
ecs代理负责拉入和运行。但是,假设您的任务定义版本为1。并且,任务定义的版本1配置了docker映像,比如版本1。并且您的ECS集群配置了任务定义为v1的服务。在这种情况下,代理将只确保任务定义v1的拉入和运行。如果希望代理管理不同的docker映像。您必须相应地更新您的定义和服务。当然。ecs代理负责拉入和运行。但是,假设您的任务定义版本为1。并且,任务定义的版本1配置了docker映像,比如版本1。并且您的ECS集群配置了任务定义为v1的服务。在这种情况下,代理将只确保任务定义v1的拉入和运行。如果希望代理管理不同的docker映像。您必须相应地更新您的定义和服务。希望有意义?是的,新版本的任务定义适用于新版本的docker image。请在回复中更新您的评论