Chúng tôi có một tình huống mà chúng tôi muốn chạy một máy chủ Django theo cách thông thường Elastic Beanstalk trong khi hooking lên một container Docker tùy chỉnh được sử dụng bởi trang web Django. Cho đến nay, tôi về cơ bản có các tập tin .ebextensions
cấu hình sau:Làm thế nào để chạy các lệnh Beanstalk Elastic trên cá thể EC2 trước khi kết nối Tài nguyên
packages:
yum:
ecs-init: []
files:
/etc/ecs/ecs.config:
mode: "000644"
owner/group: root
content: ECS_CLUSTER=${Ref: MyCluster}
commands:
01_start_docker: sudo service docker start
02_start_ecs: sudo start ecs
Resources:
MyCluster:
Type: AWS::ECS::Cluster
MyService:
Type: AWS::ECS::Service
Properties:
Cluster: ${Ref: MyCluster}
DesiredCount: 1
TaskDefinition: ${Ref: MyTask}
MyTask:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- ...
Vấn đề là các dịch vụ ECS đang cố gắng để khởi động trước khi các trường hợp EC2 đàn hồi Beanstalk-cung cấp được đăng ký với cluster. Kết quả là, triển khai đến cây đậu đàn hồi treo cứng. Nếu tôi đã tự SSH vào phiên bản EC2 và được cài đặt thủ công ecs-init
, hãy tạo ecs.config
và chạy các lệnh, dịch vụ sẽ tiếp tục được tạo và môi trường EB được tạo thành công.
Có cách nào để yêu cầu dịch vụ đợi cho đến khi phiên bản EC2 được tạo bởi nhóm tự động tính toán của EB được đăng ký với cụm không?
Nhiều bối cảnh:
- Chúng tôi muốn các máy chủ Django để có thể truy cập vào các thùng chứa Docker với localhost, nhưng tôi sẽ không được trái ngược với bao gồm một thể EC2 trong Tài nguyên đặc biệt để lưu trữ các thùng chứa Docker, nếu dễ dàng tham khảo trong các trường hợp EC2 được chia tỷ lệ tự động
- Chúng tôi đã thử phương pháp tiếp cận vùng chứa nhiều đế, nhưng cách này có vẻ gần hơn với việc sử dụng EB (có tệp máy chủ web trực tiếp trong môi trường thay vì tạo docker hình ảnh để môi trường chạy)
Thật không may, tôi nghĩ rằng điều kiện chờ là để khởi chạy phiên bản EC2. Tôi cần một điều kiện chờ đợi cho đến khi các móc 'lệnh' được chạy. –
Có thể bạn sẽ cần phải thêm tài nguyên CreationPolicy của riêng bạn làm phụ thuộc (hoặc có thể là WaitCondition) và gọi tín hiệu cfn cho nó như lệnh 03. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide /aws-attribute-creationpolicy.html – NHol