3

我由cloudformation一个EFSin创建VPC,这个 VPC 包含很少的EC2 instances.

我还需要为每个子网创建挂载目标。

此 cloudformation 模板可以在不同的AWS accounts. 如何知道Mount targets要创建多少资源?

我可以在账户 1 中有一个 vpc 和 3 subnets,另一个 vpc 在账户 2 和 2 subnets...

如何使模板通用,以便根据每个帐户环境进行?

 "FileSystem" : {
       "Type" : "AWS::EFS::FileSystem",
       "Properties" : {
         "FileSystemTags" : [
           {
             "Key" : "Name",
             "Value" : "FileSystem"
           }
         ]
       }
     },

     "MountTarget1": {
       "Type": "AWS::EFS::MountTarget",
       "Properties": {
         "FileSystemId": { "Ref": "FileSystem" },
         "SubnetId": { "Ref": "Subnet1" },
         "SecurityGroups": [ { "Ref": "MountTargetSecurityGroup" } ]
       }
     },

     "MountTarget2": {
       "Type": "AWS::EFS::MountTarget",
       "Properties": {
         "FileSystemId": { "Ref": "FileSystem" },
         "SubnetId": { "Ref": "Subnet2" },
         "SecurityGroups": [ { "Ref": "MountTargetSecurityGroup" } ]
       }
     },
4

1 回答 1

0

据我了解,您希望能够跨账户重复使用相同的模板,并根据账户所需的子网数量创建适当数量的 MountTargets。

根据子网的数量(ACL、路由表等),有许多变量和条件适用。您也许可以使用大量条件和参数来完成它,但是模板会变得非常混乱。虽然这不是一个优雅的解决方案。

更好的方法是使用对流层创建模板。这是 EFS 的示例,可帮助您入门。https://github.com/cloudtools/troposphere/blob/master/examples/EFS.py

于 2017-07-21T12:47:00.667 回答