我为Okta's Management API创建了一个API客户端库和Terraform提供程序。我在Terraform提供程序中使用Okta's Trusted Origin Management API来自动在Okta中配置Trusted Origins。
我需要帮助了解如何将预先存在的受信任来源导入Terraform状态文件,以获取已存在的受信任来源列表。
假设Okta受信任的来源由okta_trusted_origin
Terraform资源代表,我有一个名为host_urls
的网址列表。
variable "host_urls" {
description = "All the URLs for the Trusted Origin hosts"
type = "list"
default = [
"http://foo.com",
"http://bar.com",
"http://example.com"
]
}
resource "okta_trusted_origin" "host-urls" {
count = "${length(var.host_urls)}"
name = "${element(var.host_urls, count.index)}"
origin = "${element(var.host_Urls, count.index)}"
scopes = ["CORS", "REDIRECT"]
}
上面的“元参数”count
定义了要创建的资源的副本数量。每个资源都是根据host_urls
变量中定义的受信任来源创建的。在这种情况下,将创建三个Terraform资源:host-urls [0],host-urls [1]和host-urls [2]。
我遇到的问题是在这些条件下使用资源名称。 Terraform根据资源名称导入资源,如果资源由数据源中预先存在的ID标识,则会很难。每个受信任的来源在Okta中通过其名称,来源或ID进行唯一标识,但Okta的API仅允许基于ID的GET操作。换句话说,无法通过名称或原始字段获取受信任的来源。
这是我想做的事情:
terraform import okta_trusted_origin.<origin-url>
其中<origin-url>
是Okta中预先存在的受信任来源的URL。
实现我想做的最好方法是什么? Terraform的文档并没有引导我走下任何有希望的道路。非常感谢您的帮助!