ElasticBeanstalk: Đặt loại đối tượng và nhóm bảo mật từ tệp cấu hình


10

Tôi gặp sự cố khi xác định loại cá thể và nhóm bảo mật thông qua .ebextensions/*.configcác tệp trong thư mục gốc của gói ứng dụng của tôi.

Tóm lại, tôi có hai tệp cấu hình trông như thế này:

.ebextensions/01-options.config:

option_settings:
  [...]
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_ONE
    value: '01-options.config'
  [...]

.ebextensions/02-app-test-env.config:

option_settings:
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: NODE_ENV
    value: 'Test'

  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_TWO
    value: '02-app-test-env'

  - namespace: aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value: t2.micro

  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-ys75dfs2

Bây giờ, các biến môi trường đang được đặt, vì vậy tôi biết nó đang đọc cả hai tệp cấu hình, nhưng nhóm bảo mật và loại cá thể không được đặt - ngay cả khi tôi xây dựng lại môi trường, các phiên bản vẫn được tạo như t1.microvới các nhóm bảo mật mặc định - cài đặt của tôi không được áp dụng.

Tôi đang thiếu gì ở đây? Làm cách nào để xác định loại thể hiện bằng .configcác tệp?


Bạn đã kiểm tra nhật ký sau khi ứng dụng hoạt động chưa? Có lẽ nó phàn nàn về một trong những lựa chọn của bạn? Sau khi đọc điều này, tôi có ấn tượng rằng chỉ các không gian tên được liệt kê trong bảng đó được hỗ trợ, do câu này : [...] The following table displays the namespaces that are supported for each container type. [...]. Nhưng có vẻ lạ nếu đó là trường hợp.
Bazze

Câu trả lời:


11

Bạn sẽ có thể sử dụng những gì bạn có trong tệp cấu hình đó cho không gian tên launchconfiguration, nhưng bạn cần các dấu ngoặc đơn xung quanh không gian tên và giá trị như bạn có trong 2 đầu tiên đang hoạt động.

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: InstanceType
  value: 't2.micro'

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: SecurityGroups
  value: 'sg-ys75dfs2'

Ngoài ra, hãy nhớ theo dõi các lỗi với nhật ký eb nếu sử dụng eb cli 3.x. Mong rằng sẽ giúp.


Tôi đã thử nó cả bản gốc và phiên bản có dấu ngoặc kép. Không làm việc cho tôi. Các cài đặt khác trong .config của tôi như MinSize và MaxSize đang hoạt động. Cuối cùng, tôi phải sử dụng: eb tạo -i 't2.medium'?!
Charles

@Charles, vâng, tôi cũng không còn làm cho InstanceType hoạt động nữa, không chắc vấn đề là gì vì như bạn đã đề cập, các tùy chọn liên quan đến thể hiện khác hoạt động.
Tyler

Cám ơn vì đã xác nhận. Sẽ gửi câu hỏi trong diễn đàn AWS ... sẽ báo cáo lại nếu tôi tìm ra câu trả lời.
Charles


1
Vì vậy, tôi nghĩ rằng tôi có thể giải quyết vấn đề ở đây, có vẻ như các mục nhất định được đặt ở cấp API và bạn phải cập nhật chúng sau khi tạo môi trường. If you use the Elastic Beanstalk console or EB CLI to create environments, and you want to set these options using configuration files or saved configurations, you can remove the options settings with the AWS CLI or EB CLI after the environment is created.( docs.aws.amazon.com/elasticbeanstalk/latest/dg/ mẹo )
Tyler

2

Như đã đề cập trong các nhận xét, các cài đặt trong tệp cấu hình sẽ bị bỏ qua nếu chúng cũng được đặt ở cấp độ môi trường (và cài đặt InstanceTypeđược tạo tự động ở cấp độ môi trường).

Nếu bạn muốn giữ các cài đặt của mình trong các tệp cấu hình, bạn cần xóa chúng khỏi môi trường, bạn có thể thực hiện điều đó InstanceTypebằng lệnh sau:

aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

Xem thêm các tài liệu AWS để biết các cách khác để thay đổi cài đặt cấp độ môi trường.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.