Chúng tôi đang thích ứng với các mẫu ứng dụng CloudFormation của chúng tôi để sử dụng VPC. Trong khuôn mẫu này, chúng ta cần tạo các khối CIDR theo chương trình được sử dụng cho các mạng con VPC của chúng ta, để đảm bảo chúng không xung đột giữa các ngăn xếp CloudFormation.Tạo các khối CIDR mạng phụ theo lập trình trong các mẫu CloudFormation (hoặc thêm các số nguyên với nhau)
kế hoạch ban đầu của tôi đã được để tạo ra CIDRs bởi chuỗi concatenating với nhau, ví dụ:
"ProxyLoadBalancerSubnetA" : {
"Type" : "AWS::EC2::Subnet",
"Properties" : {
"VpcId" : { "Ref" : "Vpc" },
"AvailabilityZone" : "eu-west-1a",
"CidrBlock" : { "Fn::Join" : [ ".", [ { "Ref" : "VpcCidrPrefix" }, "0.0/24" ] ] }
}
},
Sau khi xem xét thêm tuy nhiên, chúng ta cần phải sử dụng một VPC đơn hơn là có một VPC cho mỗi ngăn xếp của chúng tôi .
AWS hạn chế VPC sử dụng tối đa /16
khối CIDR (chúng tôi đã yêu cầu giới hạn này được nêu ra, nhưng rõ ràng là không thể). Điều này có nghĩa là chúng ta không thể sử dụng phương thức ghép nối này nữa vì mỗi ngăn xếp của chúng ta yêu cầu các mạng con có tổng cộng hơn 255 địa chỉ.
Tôi muốn tạo ra các khối CIDR on-the-fly thay vì phải xác định chúng như tham số cho các mẫu CloudFormation,
Một ý tưởng tôi đã có được mỗi ngăn xếp có một "cơ sở nguyên" và thêm cho điều đó đối với mỗi khối CIDR của mỗi mạng con.
Ví dụ:
"CidrBlock" : { "Fn::Join" : [ ".", [ { "Ref" : "VpcCidrPrefix" }, { "Fn::Sum", [ { "Ref" : "VpcCidrStart" }, 3 ] }, "0/24 ] ] }
đâu VpcCidrStart
là một số nguyên mà bộ giá trị mà các CIDR octet thứ ba nên bắt đầu từ bên trong kịch bản, và 3
là số subnet. Rõ ràng là chức năng nội tại không tồn tại, vì vậy tôi muốn biết nếu có ai có giải pháp để thêm các số nguyên trong VPC (có vẻ như không thể thực hiện được, vì CloudFormation là chuỗi định hướng), hoặc một giải pháp tốt hơn cho câu hỏi hóc búa này nói chung.
tôi đã bắt đầu làm việc trên một Ứng dụng "Stack Manager" để xử lý các điều kiện trong đó môi trường sản xuất và dàn dựng cần thiết lập hơi khác và tự động "tắt đèn" các môi trường không sản xuất vào ban đêm - vì vậy tôi nghĩ giải pháp này có ý nghĩa đối với chúng tôi. Một sự xấu hổ mà CloudFormation thiếu các tính năng này mặc dù. – roberthl
Nếu bạn chưa làm như vậy, có thể bạn nên mô tả trường hợp sử dụng của mình và đưa ra yêu cầu tính năng của bạn trên diễn đàn AWS CloudFormation chính thức (https://forums.aws.amazon.com/forum. jspa? forumID = 92). Tôi biết rằng nhóm phát triển xử lý sự hỗ trợ ở đó. –
Tôi biết nó đã được một thời gian, nhưng tôi đã thực hiện điều này và gần đây [xuất bản nó trên GitHub] (https://github.com/royaloperahouse/stack-manager). AWS gần đây đã thêm logic và toán học cơ bản vào CloudFormation, nhưng nó khá cồng kềnh. – roberthl