azure - 如何使用 terraform 为 azure redis 缓存创建专用端点?

标签 azure redis terraform

我已在 azure redis 缓存中使用 terraform 创建了专用端点。

这是我的 Terraform 代码的相关部分:

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">=3.0.0"
    }
  }
}

provider "azurerm" {
  features {}
}


locals {
  redis_name = "my-private-endpoint"
  resource_group     = "my-resource-group"
  location = "eastus"
}


resource "azurerm_private_endpoint" "example" {
  name                = local.redis_name
  location            = local.location
  resource_group_name = local.resource_group
  subnet_id           = data.azurerm_subnet.example.id

  private_service_connection {
    name                           = "akhil-obeliskredis-cache-testing-connection-private"
    private_connection_resource_id = data.azurerm_redis_cache.example.id
    subresource_names              = ["redisCache"]
    is_manual_connection           = false

  }
  private_dns_zone_group {
    name                 = "default"
    private_dns_zone_ids = [azurerm_private_dns_zone.example.id]
  }

}

resource "azurerm_private_dns_zone" "example" {
  name                = "privatelinktest.redis.cache.windows.net"
  resource_group_name = "cvad-int-us-k8s-rg-a"
}

data "azurerm_subnet" "example" {
  name                 = "aks-subnet"
  virtual_network_name = "cvad-int-us-vnet-a"
  resource_group_name  = "cvad-int-us-k8s-rg-a"
}


data "azurerm_redis_cache" "example" {
  name                = "akhil-obeliskredis-cache-testing"
  resource_group_name = "my-resource-group"
}

创建专用端点后,我在网络上执行 netcat 时遇到问题:

nc: getaddrinfo for host "akhil-obeliskredis-cache-testing.redis.cache.windows.net" port 6380: Name or service not known

我看到了一个区别。在 terraform 创建中,fqdn 没有创建,当我从 azure 门户手动创建时,fqdn 正在创建,并且正在运行,没有任何错误

使用地形 enter image description here

从 azure 门户手动创建 - 之后当我 p enter image description here

请指导我,当我尝试使用 Terraform 为 Azure Redis 缓存创建专用终结点时可能会缺少哪些内容。

提前致谢

最佳答案

需要正确配置多种资源才能使其正常工作:

  • 私有(private)端点
  • 私有(private) DNS 区域
  • DNS 区域组
  • VNet 链接

您的 Vnet 是否链接到专用 DNS 区域?我在您的代码中没有看到 Vnet 链接资源。

azurerm_private_dns_zone_virtual_network_link”使用 Azure 专用 DNS 在 Azure 虚拟网络内启用 DNS 解析和注册。

resource "azurerm_private_dns_zone_virtual_network_link" "example" {
  name                  = "test"
  resource_group_name   = azurerm_resource_group.example.name
  private_dns_zone_name = azurerm_private_dns_zone.example.name
  virtual_network_id    = azurerm_virtual_network.example.id
}

引用:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_dns_zone_virtual_network_link

关于azure - 如何使用 terraform 为 azure redis 缓存创建专用端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76406553/

相关文章:

azure - 使用远程连接字符串在 Azure 上执行代码优先迁移

c# - 如何将用户的消息存储在表存储中? (微软机器人框架 SDK4 和 C#)

python - 如何从 Azure Blob 存储并行加载文件?

Redis 键空间通知 - 订阅者数量与争用

azure - Terraform - 文件配置程序不会使用 azurerm 将文件复制到适当的位置

amazon-ec2 - 地形 AWS : override root device size using aws_launch_template and block_device_mappings

azure - 如何并行化 azure worker 角色?

c# - 使用Redis实现登录?

php - 一段时间后 blpop 停止处理队列

azure - 有没有办法使用 Terraform 创建 Azure 数据科学 VM?