2017-01-11 17 views
8

Tôi đang cố gắng để xác định một tham số boolean trong một mẫu CloudFormation vì vậy tôi có điều kiện có thể tạo tài nguyên dựa trên tham số truyền vào trongAWS: Làm thế nào để xác định một tham số boolean trong một CloudFormation mẫu

Nhìn vào các tài liệu here. và here nó sẽ xuất hiện có sự thiếu rõ ràng của một kiểu dữ liệu boolean.

Thực tiễn tốt nhất để chỉ định boolean là gì? có thể Number với 0 hoặc 1 hoặc String với AllowedValues 'true' và 'false'?

+0

Tại sao không sử dụng một cặp khóa để thay thế? Trường hợp sử dụng của bạn là gì? –

+0

Cặp khóa hoạt động như thế nào? Trường hợp sử dụng được chỉ định trong câu hỏi - tạo điều kiện các tài nguyên trong mẫu dựa trên tham số đầu vào. –

Trả lời

11

Các Quick Start mẫu là một tốt, điểm tham chiếu bán chính thức về cách các mẫu phức tạp có thể/nên được tạo ra, và họ thực hiện các giá trị Boolean cho nguồn tài nguyên có điều kiện chính xác như bạn mô tả, sử dụng một String với AllowedValuestruefalse. Dưới đây là một cụ example:

"EnableBanner": { 
    "AllowedValues": [ 
     "true", 
     "false" 
    ], 
    "Default": "false", 
    "Description": "To include a banner to be displayed when connecting via SSH to the bastion, set this parameter to true", 
    "Type": "String" 
} 

Một ví dụ tương tự có thể được tìm thấy trong Conditionally use an existing resource ví dụ từ các tài liệu CloudFormation, nơi AllowedValuesdefault hoặc NONE (mặc định).

Để có điều kiện tạo ra một nguồn lực dựa trên một tham số boolean như vậy, bạn thêm một tuyên bố Condition chứa một Fn::Equals chức năng nội tại phù hợp với true, sau đó thêm một chìa khóa Condition đến tài nguyên.

Dưới đây là một hoàn chỉnh, tối thiểu dụ mẫu:

Launch Stack

Parameters: 
    CreateResource: 
    Description: Whether I should create a resource. 
    Default: false 
    Type: String 
    AllowedValues: [true, false] 
Conditions: 
    ShouldCreateResource: 
    !Equals [true, !Ref CreateResource] 
Resources: 
    Resource: 
    Type: AWS::CloudFormation::WaitConditionHandle 
    Condition: ShouldCreateResource 
Các vấn đề liên quan