Как получить ключ API от службы поиска Azure AI, созданной в Terraform, чтобы использовать его в другом ресурсе?

Я следую этому руководству, чтобы создавать индексы, индексаторы и источники данных Azure AI Search: https://medium.com/expert-thinking/mastering-azure-search-with-terraform-a-how-to-guide -7edc3a6b1ee3

Я хочу иметь возможность создать службу поиска Azure AI с помощью Terraform, а затем использовать созданный ею ключ API для использования в моем провайдере restapi.

С использованием:

терраформ v.1.7.1

хашикорп/азурерм v3.95.0

мастеркард/рестапи v1.19.0

среда/dev/main.tf

module "main" {
  source                  = "../.."
  environment             = var.environment
  az_subscription_id      = var.az_subscription_id
  other_modules_vars      = .....
  azure_search_api_key    = [how to get this after creating the azure search?]
}

main.tf:

module "az-search" {
  source                      = "./modules/az-search"
  environment                 = var.environment
  az_resource_group_name      = var.az_resource_group_name
  az_resource_group_location  = var.az_resource_group_location
  providers = {
    azurerm = azurerm.sub
  }
}

провайдеры.tf:

provider "azurerm" {
  alias           = "sub"
  subscription_id = var.az_subscription_id
  features {}
}

provider "restapi" {
  uri                   = "https://some-search.search.windows.net"
  write_returns_object  = true
  debug                 = true

  headers = {
    "api-key"       = [how do I get this from the created resource?]
    "Content-Type"  = "application/json"
  }

  create_method   = "POST"
  update_method   = "PUT"
  destroy_method  = "DELETE"
}

az-search/main.tf

resource "azurerm_search_service" "search" {
  name                          = "some-search"
  resource_group_name           = var.az_resource_group_name
  location                      = var.az_resource_group_location
  sku                           = var.sku
}

resource "restapi_object" "create_datasource" {
  path          = "/datasources"
  query_string  = "api-version=2023-10-01-Preview"
  data          =  file(var.datasource_path)
  id_attribute  = "name"
}

Могу ли я получить ключ API из созданного ресурса, а затем вставить его в провайдер рестапи? Если нужна дополнительная информация, дайте мне знать, я только начинаю терраформирование и добавляю к предыдущему коду.

Я не верю, что версии плагинов Terraform, использующие самые последние SDK, позволяют назначать значения аргументов провайдера из атрибутов экспортированных ресурсов.

Matthew Schuchard 14.06.2024 16:28
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
1
101
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как получить ключ API от службы поиска Azure AI, созданной в Terraform, чтобы использовать его в другом ресурсе?

Во-первых, ниже приведены два API_keys ключа доступа: один primary, а другой secondary для управления доступом к API. Любой из способов будет полезен для доступа к сервису.

Итак, в terraform есть два конкретных атрибута , как для primary_APIkey, так и для secondary_APIkey.

Используйте блок выходов для получения ключа API из службы поиска Azure AI, который будет предоставлен поставщику API для отдыха, как показано ниже.

output "rest_api_key"{
value = azurerm_search_service.example.primary_key
sensitive = true

main.tf:

terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "3.108.0"
    }
  }
}
provider "azurerm"{
features{}
}
data "azurerm_resource_group" "example" {
  name     = "asha"
}

resource "azurerm_search_service" "example" {
  name                = "newsearchservicej"
  resource_group_name = data.azurerm_resource_group.example.name
  location            = data.azurerm_resource_group.example.location
  sku                 = "standard"
}
output "rest_api_key"{
value = azurerm_search_service.example.primary_key
sensitive = false
}

Примечание. Получите доступ к ключу API из блока output и передайте его в коде там, где это необходимо.

Выход:

Другие вопросы по теме

Похожие вопросы

Почему самостоятельный агент Azure получает сообщение об ошибке «Отказано в соединении» при подключении к EventHubs?
Файл паркета не перезаписывается в записных книжках Azure Synapse
Нужна ли мне подписка на Microsoft 365, чтобы использовать Graph API для Outlook в Python?
Microsoft Graph — доступ к стенограммам OnlineMeetings — выражение невозможно вычислить
Функции Azure, созданные в одном облачном местоположении, например на юге Индии, должны иметь возможность создать группу ресурсов в центральном месте США
Войдите в Azure B2C с помощью учетной записи OpenID (рабочая электронная почта Microsoft), но запретите пользователю регистрироваться
Как получить события группового календаря, используя разрешения только для приложений Azure? Ошибка: Доступ запрещен. Проверьте учетные данные и повторите попытку
Выполнение задания в Azure DevOps Pipelines занимает много времени
Рабочий процесс создания и развертывания .sqlproj
Как сохранить векторы, созданные AzureOpenAIEmbeddingSkill, в индексаторе с учетом моей текущей настройки