这个文件指定了Terraform的版本要求、AWS区域和配置文件来自变量,以及从本地文件获取AWS凭证(如果存在)。
查看aws.tf文件的内容 - 这个文件向Terraform指定:
这个文件生成一个随机ID,在整个构建过程中使用。
这个文件定义了一些变量,用于7个DynamoDB表的值。 我们使用7个表来帮助锁定用于基础设施构建不同阶段/部分的7个状态文件,以及构建中7个阶段的字符串映射。
这个文件中设置了一些其他的一般变量:区域、默认的AWS配置文件名称、EKS集群名称。
这个文件创建了一个KMS密钥,用于加密Terraform创建的各种资源。
这个文件指定Terraform应该创建五个DynamoDB表,用于保存访问我们稍后在S3存储桶中创建的Terraform状态文件的锁。注意depends_on语句,确保在创建DynamoDB表之前先创建S3存储桶。
这个文件创建了一个S3存储桶和各种存储桶选项。这个存储桶用于存储Terraform状态文件。
null_resource类型允许我们在基础设施构建过程中运行本地(或远程)命令。这个资源包含一个depends_on
语句,有助于序列化脚本调用并防止任何竞争条件(sleep 6),以确保在使用之前正确创建资源。
这个null_resource然后在适当的时候调用gen-backend.sh脚本。
这个脚本生成了这些Terraform文件,供我们EKS基础设施的其他7个部分使用:
这是构建的关键步骤,因为关键变量被存储在SSM参数存储中,前缀为”/workshop/tf-eks”。