amazon-web-services - Terraform - 什么是空提供者?
问题描述
我想知道 terraform null 提供程序的真正用途是什么以及何时使用和不使用它。
我已经浏览了 Terraform 文档 - https://registry.terraform.io/providers/hashicorp/null/latest/docs ,但帮助不大。
空提供者
null 提供者是一个非常不寻常的提供者,它具有故意不做任何事情的构造。这可能听起来很奇怪,实际上这些结构在大多数情况下不需要使用,但它们在各种情况下都可以用于帮助协调棘手的行为或解决限制。
此提供程序的每个功能的文档(可通过导航访问)提供了这些构造可能被证明有用的情况的示例。
使用 null 提供程序会使 Terraform 配置更难理解。虽然它在某些情况下可能很有用,但应谨慎应用,并在可用时首选其他解决方案。
有人可以详细说明一下吗? 但是它们在各种情况下都可以用来帮助协调棘手的行为或解决限制问题。并提供进一步的参考来探索这个提供者。
--这就是我的providers.tf文件的样子-
provider "aws" {
alias = "primary"
region = "us-east-1"
profile = "${local.primary_aws_profile}"
version = "~> 2.70.0"
}
provider "template" {
version = "~> 1.0"
}
provider null {
version = "~> 1.0"
}
解决方案
您正在使用空资源主要 null_resource:
空资源的主要用例是作为配置者采取的任意操作的无操作容器。
正如描述所写,您主要将它与诸如和之类的供应商一起使用。local-exec
remote-exec
一个常见的场景是在创建大量资源时使用local-exec
和执行自定义操作。remote-exec
这种情况的示例是在资源创建中引入延迟,如下所示:
resource "null_resource" "before" {
}
resource "null_resource" "delay" {
provisioner "local-exec" {
command = "sleep 10"
}
triggers = {
"before" = "${null_resource.before.id}"
}
}
resource "null_resource" "after" {
depends_on = ["null_resource.delay"]
}
推荐阅读
- php - PHP 警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在
- pygame - 如何在 raspbian os 上运行的 raspberry pi 上的虚拟环境中安装/导入 pygame?
- request - 我已经请求 lib 但得到 ImportError: No module named request
- mysql - 连接数据库并在 Node 中创建数据库
- python - 遍历目录会引发非迭代器错误
- python-3.x - 为什么 count() 方法给出奇怪的答案?
- android - AlertDialog 单元测试 - java.lang.VerifyError:操作数堆栈上的错误类型
- node.js - 如何在 AWS-lambda 中使用 nodeJS 对 dynamo DB 中的数据进行排序
- wso2 - wso2流处理器中给出的教程没有按预期工作,特别是Making Real Time Predictions
- python - 我的 API Get Request 可以让我不超过 100 ,如何循环它以便我可以获得所有项目?