【问题标题】:How to automate one-off AWS resources using Terraform?如何使用 Terraform 自动化一次性 AWS 资源?
【发布时间】:2020-01-06 06:47:14
【问题描述】:

在使用基础架构即代码工具(如 Terraform)创建资源时,通过自动化管道创建一次性创建资源(如 VPC 和数据库)的最佳实践是什么?

例如,在创建 Lambda 函数时,我们需要提供 VPC ID。仅当 VPC 已通过 Terraform 创建时,才能提供此 VPC ID。那么根据创建的资源类型是否应该有 2 个不同的管道?对于一次性资源,一个单独的管道(理想情况下只运行一次)和另一个管道来创建一次性资源?

【问题讨论】:

  • This VPC ID can only be supplied if the VPC is already created via the Terraform 不正确。您可以使用数据源在您的账户中选择一个预先存在的 VPC,无论是由 Terraform 创建(在同一状态文件中还是在另一个状态文件中)还是您在 Terraform 之外创建的。

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

如果您谈论的是 IaC(基础设施即代码)的一般最佳实践,请查看以下内容:

  1. 编码一切。
  2. 尽可能少地记录。
  3. 维护版本控制。
  4. 持续测试、集成和部署。
  5. 使您的基础架构代码模块化。
  6. 尽可能使您的基础架构不可变。

我会推荐使用 AWS CloudFormation,因为它是免费的,并为您提供了一个界面来管理堆栈并获得所创建资源的可见性。此外,它还具有堆栈创建或更新失败时的自动回滚功能。

仅当 VPC 已通过 Terraform 创建时,才能提供此 VPC ID。那么根据创建的资源类型是否应该有 2 个不同的管道?

实际上,您可以将 VPC ID 用作 AWS CloudFormation 模板或 Terraform 模板的参数。

对于一次性资源,一个单独的管道(理想情况下只运行一次)和另一个管道来创建一次性资源?

最好有一个单独的堆栈用于持续部署或一次性资源,而一个单独的堆栈用于定义您的基础基础架构的一次性资源。

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 2021-07-25
    • 2022-01-03
    • 2019-05-19
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多