请告诉我是否有任何方法可以使Terraspace堆栈在一些环境中通用?例如,我对所有非生产环境都有一个AWS帐户,并且我想对所有环境使用相同的VPC,所有其他资源(例如EC2、RDS、SQS等(对于每个环境都是不同的和特定的。那么,有没有办法将一个通用VPC堆栈的状态(首先是输出(共享给其他环境(dev、stage、test等(,以及如何防止在terraspace build <environment>
stage上将VPC堆栈分别应用到每个环境?
您好,您可以创建模块,每个模块将代表一个堆栈,并使用跨环境。模块是用于一起使用的多个资源的容器。模块可以用来创建轻量级抽象,这样你就可以用架构来描述你的基础设施,而不是直接用物理对象来描述。
这是一个参考
例如,你的堆栈是这样的图像:
stage
└ vpc
└ services
└ frontend-app
└ backend-app
└ data-storage
└ mysql
└ redis
prod
└ vpc
└ services
└ frontend-app
└ backend-app
└ data-storage
└ mysql
└ redis
mgmt
└ vpc
└ services
└ bastion-host
└ jenkins
global
└ iam
└ s3
因此,如果你想在一个单独的git项目中创建模块,并在每个env:中使用这些模块
live.git
└ stage
└ vpc
└ services
└ frontend-app
└ backend-app
└ data-storage
└ mysql
└ redis
└ prod
└ vpc
└ services
└ frontend-app
└ backend-app
└ data-storage
└ mysql
└ redis
└ mgmt
└ vpc
└ services
└ bastion-host
└ jenkins
└ global
└ iam
└ s3
modules.git
└ data-stores
└ mysql
└ redis
└ mgmt
└ vpc
└ jenkins
└ security
└ iam
└ s3
└ bastion-host
└ services
└ webserver-cluster
这里有一个关于如何创建模块的链接