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ẻ?