Terraformprovider为大量不同的云提供商(IaaS、PaaS 和 SaaS)提供服务。其中一些提供商的速率限制非常低,一旦您的基础设施达到一定规模,即您在同一 Terraform 状态下拥有数百个资源,您很快就会达到该限制。我在多个提供商处都遇到过此问题,最近是 Azure 资源管理器 (Azure Resource Manager azurerm),其 DNS 速率限制(当前)为每 5 分钟 500 个 GET 请求。
处理 Terraform 中的速率限制问题的一种常见且明智的方法是将您的状态拆分为更小的逻辑内聚状态。然而,您最终会达到一个极限,进一步分割状态不再具有语义意义。我不想最终陷入这样的情况:我必须创建语义上应该相同的单独状态,但由于速率限制原因,我必须任意分离它们。
解决此问题的另一种方法是将-parallelism=1标志传递给相应的terraformCLI 命令,以避免向提供程序发出任何并行请求,从而最大限度地减少每分钟执行的请求。
我现在已经用尽这两种方法来解决我目前在一个州遇到的速率限制问题,但问题仍然存在。并行性被禁用,进一步分解状态没有意义。我仍然达到速率限制,因此,此状态下的所有操作都会失败terraform refresh。terraform apply
独立于所讨论的特定提供者,是否有任何方法可以告诉 Terraform 更慢地(或以某个最大速率)向提供者执行请求以避免达到速率限制?我在相关 Terraform CLI 命令中没有找到任何与此相关的标志。
我创建了一个 AWS CloudWatch 日志组,其名称不太适合未来证明。是否可以重命名这样的日志组?我找不到通过 CloudWatch 控制台执行此操作的选项。
我想另一种方法是导出日志组的内容,使用所需名称创建一个新的日志组,然后将导出的日志重新使用到新的日志组。不过,我更愿意避免这种方法,因为(除了乏味之外)这会重置ingestionTime日志组中所有日志事件的 。