trong đám mây có thể tạo ra một chuỗi có thể tái sử dụng?


14

tôi có một chuỗi được hình thành từ một số biến mà tôi sử dụng cho nhiều thứ khác nhau như Thẻ và tên máy chủ.

Có cách nào để tạo một chuỗi có thể sử dụng lại mà tôi chỉ có thể Ref mặc dù ra khỏi mẫu không?

bất kỳ suy nghĩ về điều này sẽ được nhiều đánh giá cao. chỉnh sửa: Một ví dụ sẽ truyền vào 2 tham số như ProjectName và Môi trường khi nối chúng

"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]

và sử dụng kết quả ở một số nơi


Bạn đang nói về một tham số? docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iêu
Edwin

Tôi nghĩ Biến đổi là những gì AWS cung cấp cho việc này. Đáng buồn thay, họ chưa hỗ trợ bí danh YAML.
jgomo3

Câu trả lời:


7

Thật không may, thí nghiệm của tôi là đồng ý với kết luận của bạn Graeme. Tôi đã vật lộn với điều này một thời gian nhưng không tìm thấy cách tính toán Chuỗi thông qua Fn :: Tham gia và giữ nó sau này trong mẫu.

Tôi có thể chia sẻ với bạn một ví dụ điển hình không?

Vào thời điểm 2014-09-18, cách lưu trữ giá trị chuỗi tinh vi nhất để sử dụng lại trong phần Tài nguyên sẽ thông qua Ánh xạ (cấp độ thứ hai). Vẫn tốt hơn, tôi có thể tính toán trước một Điều kiện và xác định có nên sử dụng chuỗi hay không. Nhưng thật không may, việc lưu trữ một chuỗi không hoạt động.

Dưới đây là một ví dụ điển hình của Bản đồ

    "LoadBalancerBucketMap": {
        "BucketName": {
            "string": {
                "Fn::Join": [
                    "-",
                    [
                        "mylb",
                        {
                            "Ref": "Environment"
                        },
                        "logs"
                    ]
                ]
            }
        }
    },

Và đây là một biểu thức truy cập vào nó trong Tài nguyên

                "S3BucketName": {
                    "Fn::FindInMap": [
                        "LoadBalancerBucketMap",
                        "BucketName",
                        "string"
                    }

Trong ví dụ này, Môi trường là một tham số chuỗi bằng chữ với mặc định thuận tiện. Vì vậy, đó là một ví dụ rất rõ ràng về việc tạo và sử dụng lại một chuỗi. Nhưng đây là những gì bộ xử lý CloudFormation nói

Lỗi xác thực mẫu: Lỗi định dạng mẫu: Mỗi thuộc tính Ánh xạ phải là Chuỗi hoặc Danh sách.

Vì vậy, tôi chia sẻ sự thất vọng của bạn rằng dường như không có cách nào trong một mẫu để cung cấp hiệu ứng của biến chuỗi tạm thời.

Càng xa tôi càng thấy. Nhưng câu trả lời ban đầu bạn nhận được đã nói ngược lại với điều này (mặc dù không có ví dụ).

Vì vậy, nếu bất cứ ai có một ví dụ giải pháp, xin vui lòng họ có thể chia sẻ?


2

Bạn có thể sử dụng thông số hoặc ánh xạ để lưu trữ các chuỗi mà bạn có thể sử dụng trong các mẫu của mình.


1
Điều này chỉ hoạt động cho các chuỗi tĩnh. OP đặc biệt yêu cầu các chuỗi được tính toán, dường như hoàn toàn không thể.
Joe

0

Thật không may, tôi đã thấy rằng nó không thể làm những gì tôi đang cố gắng để đạt được. Nó không giúp đỡ nhưng nó có.


0

Chúng tôi thực sự tạo tên ngăn xếp CloudFormation chính xác {ProjectName}-{Environment}trong thời gian aws cloudformation deploy. Bạn đã xem xét quy ước đặt tên này cho tên ngăn xếp của bạn?

Sau đó, bạn chỉ có thể tham khảo nó như { "Fn:Sub": "${AWS::StackName}" }.

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.