terraform - Terraform 提供者 - 您将如何表示没有明确定义的 CRUD 操作的资源?
问题描述
为了工作,我正在学习 Go 和 Terraform。我在他们的教程中阅读了如何定义不同的上下文,但我不清楚这些不同的上下文何时被调用以及是什么触发了它们。
通过查看Hashicups示例,当您输入以下内容时,它看起来像:
resource "hashicups_order" "new" {
items {
coffee {
id = 3
}
quantity = 2
}
items {
coffee {
id = 2
}
quantity = 2
}
}
在将要查看的 Terraform 文件中hashicups_order
删除hashicups
前缀并查找名为 order 的资源。订单资源提供以下上下文:
func resourceOrder() *schema.Resource {
return &schema.Resource{
CreateContext: resourceOrderCreate,
ReadContext: resourceOrderRead,
UpdateContext: resourceOrderUpdate,
DeleteContext: resourceOrderDelete,
我不清楚是什么触发了每个 context 。从该示例看来,由于您正在增加数量的值,它将触发更新上下文。如果这是第一次运行并且不存在先前的状态,它将触发创建等。
但是,在我的情况下,资源是服务器,而我想向用户展示的一个 API 资源是服务器电源控制。但是,您永远不会“创建/销毁”此资源......或者你会吗?您可以读取当前的电源状态,也可以更新电源状态,但至少直观地说,您不会创建或销毁它。我很难理解如何在 Terraform/Go 中对其进行建模。我从概念上理解示例中的咖啡资源,但我很难想象它看起来像服务器电源功能或其他东西,而没有明确匹配不同的 CRUD 操作。
解决方案
推荐阅读
- neo4j - 如何处理 Neo4j 中的每个 allShortestPaths?
- asp.net - 如何为 Sharepoint 2019 站点本地项目设置权限
- arrays - 使用小数组从大数组创建新数组以选择值 numpy
- php - Firebase 无法从 php 接收通知
- reactjs - 将 Gatsby 网站转换为 WordPress 的 WebFlow?
- c# - 如何有一个动作来支持表单数据和正文中的 JSON?
- javascript - 带有存储的对象内的数组
- pytorch - 如何在 PyTorch 中与另一个数据加载器一起采样
- angular - 角度合并/加入/组合两个订阅
- ada - Ada on the microbit:滚动文本示例不起作用,找不到 libusb 库