将预先存在的数据列表导入Terraform

时间:2018-05-31 18:08:19

标签: go terraform

我为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的文档并没有引导我走下任何有希望的道路。非常感谢您的帮助!

0 个答案:

没有答案