amazon-web-services - Terraform 读取现有资源的详细信息
问题描述
我在 terraform 中遇到了一个问题,我想阅读通过 AWS Web 控制台创建的一些现有资源 (r1) 的详细信息。我在通过 terraform 创建新资源 (r2) 时使用这些细节。
问题是它试图破坏并重新创建不需要的资源,因为它将失败。当我应用 terraform 时,如何设法不破坏和重新创建 r1。
这是我的做法:
主文件
resource "aws_lb" "r1"{
}
...
resource "aws_api_gateway_integration" "r2" {
type = "HTTP"
uri = "${aws_lb.r1.dns_name}}/o/v1/multi/get/m/content"
}
首先我导入该资源
terraform import aws_lb.r1 {my_arn}
接下来我应用 terraform
terraform apply
错误
aws_lb.r1: Error deleting LB: ResourceInUse: Load balancer 'my_arn' cannot be deleted because it is currently associated with another service
解决方案
该import
语句用于控制 Terraform 设置中的现有资源。
如果您的唯一目的是获取有关现有资源的信息(在 Terraform 控件之外),则数据源专为满足此需求而设计:
data "aws_lb" "r1" {
name = "lb_foo"
arn = "some_specific_arn" #you can use any selector you wish to query the correct LB
}
resource "aws_api_gateway_integration" "r2" {
type = "HTTP"
uri = "${data.aws_lb.r1.dns_name}/o/v1/multi/get/m/content"
}
推荐阅读
- ruby-on-rails - 在 SLIM 视图内的 Ajax 调用中包含 ruby 变量的正确语法
- vue.js - Vue-Router beforeEnter 没有按预期运行?
- python-3.x - Codingame 'A child's play' 进程超时
- c - 在 %[] 格式转换说明符中使用 '"'
- android - Retrofti 2:找到多个 Retrofit 注释,只允许一个。(参数#1)
- java - 为什么使用 cxf-xjc-plugin 从 xsd 生成代码(java)在 jdk 11(亚马逊)上不起作用,但在 java 8 上起作用
- python - 调用命令后,Tkinter 按钮突出显示功能停止工作
- javascript - JavaScript:onClick 事件无需触发即可工作
- audio - WAV 文件和 M4A 文件有什么区别?
- c# - Entity Framework Core 同一个实体的多个外键