Terraform是否自动批量创建资源



所以我通过简单的terraform apply应用TF Provider创建150资源,并注意到它批量打印资源:

# batch #1
foo_resource.bar_1: Creating...
...
foo_resource.bar_10: Creating...
foo_resource.bar_1: Creation complete after 12s [id=...]
...
foo_resource.bar_10: Creation complete after 15s [id=...]
# batch #2
foo_resource.bar_11: Creating...
...

此外,当我打开跟踪日志时,我可以看到在同一秒内有10个日志:

# batch #1
2022-03-03T00:48:59.139-0800 [INFO]  provider.: 2022/03/03 00:48:59 [DEBUG] Created foo_1: timestamp=2022-03-03T00:48:59.139-0800
2022-03-03T00:48:59.139-0800 [INFO]  provider.: 2022/03/03 00:48:59 [DEBUG] Created foo_3: timestamp=2022-03-03T00:48:59.139-0800
...
# batch #2
2022-03-03T00:49:20.866-0800 [INFO]  provider.: 2022/03/03 00:49:20 [DEBUG] Created foo_12: timestamp=2022-03-03T00:49:10.866-0800

因此,您可以清楚地看到批次#1和批次#2之间的时间戳差异约为20秒(00:49:20-00:48:59(,这与提供者在创建每个资源后在内部使用的超时完全相同,因此它似乎不会同时发送150创建请求,而是在每个批次大小为10的情况下分批执行这些请求。

问题是Terraform批量资源创建是自动的,还是只是巧合?

Terraform不执行批处理,但有一个并行度限制,默认为10:https://www.terraform.io/cli/commands/apply#parallelism-n

最新更新