Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Většina Azure prostředků se spravuje prostřednictvím řídicí roviny Azure Resource Manager (ARM) – jedno sjednocené rozhraní API na management.azure.com. Všechny typy prostředků azapi_resource, azapi_update_resource a azapi_resource_action cílí na tuto řídicí rovinu.
Některé služby Azure zpřístupňují samostatné rozhraní API roviny dat – koncový bod HTTPS specifický pro službu, ve kterém komunikujete přímo se službou místo prostřednictvím ARM. Mezi příklady patří rozhraní API tajemství Key Vault na adrese {vaultName}.vault.azure.net, rozhraní API indexu Azure AI Vyhledávač na adrese {searchServiceName}.search.windows.net a rozhraní API datového toku pracovního prostoru Synapse na adrese {workspaceName}.dev.azuresynapse.net.
azapi_data_plane_resource tuto mezeru překlenuje tím, že umožňuje Terraformu spravovat prostředky na těchto koncových bodech datové roviny pomocí stejného modelu ověřování a životního cyklu poskytovatele AzAPI.
Proč se podporuje jenom kurátorovaná sada typů prostředků
Na rozdíl od azapi_resource, který může cílit na libovolný typ prostředku ARM, azapi_data_plane_resource funguje jen s konkrétním seznamem registrovaných typů prostředků.
Toto omezení existuje, protože rozšiřitelnost roviny dat vyžaduje explicitní registraci v rozhraní roviny dat zprostředkovatele AzAPI. Rámec musí vědět:
- Vzor základního koncového bodu pro službu (například
{vaultName}.vault.azure.net) - Cesta REST pro každý podporovaný typ prostředku (například
/secrets/{secret-name}) - Jak se ověřit u tohoto koncového bodu (některé služby vyžadují tokeny pro specifické cílové skupiny služeb místo výchozího cílového publika ARM)
https://management.azure.com
Každý zaregistrovaný typ prostředku toto mapování přidá do architektury. Neregistrované typy prostředků nelze cílit prostřednictvím azapi_data_plane_resource, protože poskytovatel nemá žádný způsob, jak určit správný koncový bod nebo obor ověřování.
Tip
Pokud požadovaný typ prostředku roviny dat není podporovaný, můžete otevřít problém nebo přispět registrací v úložišti GitHub terraform-provider-azapi.
Jak parent_id funguje u prostředků datové roviny
Pro prostředky řídicí roviny (azapi_resource) je parent_id vždy ID prostředku ARM—cesta ve tvaru /subscriptions/{sub}/resourceGroups/{rg}/providers/{namespace}/{type}/{name}.
U prostředků datové roviny je název hostitele datové roviny služby zbavený schématu https:// a veškerého koncového lomítka. Tento koncový bod je obvykle vlastnost dostupná na prostředku řídicí roviny ARM po vytvoření.
Model se liší podle služby:
| Service | Výstupní vlastnost ARM | vzor parent_id |
|---|---|---|
| Key Vault | properties.vaultUri |
{vaultName}.vault.azure.net |
| Azure App Configuration | properties.endpoint |
{storeName}.azconfig.io |
| Azure AI Vyhledávač | (sestaveno z názvu) | {searchServiceName}.search.windows.net |
| Synapse pracovního prostoru | connectivityEndpoints.dev |
{workspaceName}.dev.azuresynapse.net |
| Aplikace IoT Central | properties.subdomain |
{appSubdomain}.azureiotcentral.com |
| Microsoft Purview | (sestaveno z názvu) | {accountName}.purview.azure.com |
Extrahování parent_id z výstupu ARM
Použijte response_export_values na nadřazený prostředek ARM, abyste extrahovali koncový bod datové roviny, a potom odstraňte schéma příkazem trimprefix nebo replace.
resource "azurerm_key_vault" "example" {
# ... configuration
}
resource "azapi_data_plane_resource" "secret" {
type = "Microsoft.KeyVault/vaults/secrets@7.4"
# Strip "https://" and the trailing "/" from the vault URI
parent_id = trimsuffix(trimprefix(azurerm_key_vault.example.vault_uri, "https://"), "/")
name = "my-secret"
body = {
value = var.secret_value
attributes = { enabled = true }
}
}
Pokud používáte azapi_resource k vytvoření nadřazeného objektu místo AzureRM, použijte response_export_values k zachycení koncového bodu:
resource "azapi_resource" "app_config" {
type = "Microsoft.AppConfiguration/configurationStores@2023-03-01"
name = "my-store"
parent_id = azapi_resource.resource_group.id
location = "eastus"
body = { sku = { name = "standard" } }
response_export_values = {
endpoint = "properties.endpoint"
}
}
resource "azapi_data_plane_resource" "key_value" {
type = "Microsoft.AppConfiguration/configurationStores/keyValues@1.0"
parent_id = replace(azapi_resource.app_config.output.endpoint, "https://", "")
name = "mykey"
body = { value = "myvalue", content_type = "" }
}
Pro služby, ve kterých je koncový bod odvozený z názvu prostředku místo vlastnosti URI, vytvořte ho přímo:
resource "azurerm_search_service" "example" {
name = "my-search"
# ... configuration
}
resource "azapi_data_plane_resource" "index" {
type = "Microsoft.Search/searchServices/indexes@2024-07-01"
parent_id = "${azurerm_search_service.example.name}.search.windows.net"
name = "my-index"
body = { fields = [ /* ... */ ] }
}
Ověřování koncových bodů roviny dat
Zprostředkovatel AzAPI zpracovává ověřování transparentně. Používá stejné přihlašovací údaje, které nakonfigurujete na bloku provider "azapi" (Azure CLI, instanční objekt, spravovanou identitu nebo OpenID Connect (OIDC)), ale automaticky požaduje tokeny určené pro cílovou skupinu roviny dat jednotlivých služeb, nikoli pro publikum ARM.
Například operace datové roviny Key Vault vyžadují tokenového adresáta https://vault.azure.net, nikoli https://management.azure.com. Poskytovatel AzAPI vybere správnou cílovou skupinu na základě registrovaného koncového bodu pro každý typ prostředku.
Jako odborník nemusíte nic konfigurovat jinak. Pro službu platí standardní oprávnění řízení přístupu na základě role (RBAC), například Key Vault Secrets Officer pro správu Key Vault tajných kódů nebo App Configuration Data Owner ke správě hodnot klíčů služby App Configuration.
Note
U některých služeb (například Azure App Configuration a Azure AI Vyhledávač) musí volající mít odpovídající přiřazení role roviny dat, nejen roli vlastníka řídicí roviny. Před použitím konfigurací, které používají azapi_data_plane_resource, se ujistěte, že identita, na které běží Terraform, má správné přiřazení řízení přístupu na základě role (RBAC).
Formát ID prostředku pro import
ID prostředku v datové rovině používá jiný formát než ID prostředku ARM. Při importu existujícího prostředku roviny dat použijte formát {parent_id}/{path}|{resource-type}@{api-version}:
import {
to = azapi_data_plane_resource.example
id = "exampleappconf.azconfig.io/kv/mykey|Microsoft.AppConfiguration/configurationStores/keyValues@1.0"
}
Nebo s terraform import:
terraform import azapi_data_plane_resource.example 'exampleappconf.azconfig.io/kv/mykey|Microsoft.AppConfiguration/configurationStores/keyValues@1.0'
Podporované služby roviny dat
Poskytovatel AzAPI v současné době podporuje typy prostředků azapi_data_plane_resource v rámci těchto služeb:
- Azure App Configuration – hodnoty klíče
- Azure AI Foundry – agenti
- Azure Aktualizace zařízení – skupiny, nasazení
- Azure Digital Twins – digitální dvojčata, relace, trasy událostí, úlohy importu
- Azure IoT Central – organizace, uživatelé, naplánované úlohy, tokeny rozhraní API, řídicí panely, skupiny zařízení, šablony zařízení, zařízení, skupiny registrací, exporty dat, manifesty nasazení
- Azure Key Vault – kontakty certifikátů, vystavitele certifikátů, klíče, tajné kódy, účty úložiště, definice SAS
- Microsoft Purview – kolekce, konfigurace pravidel sady prostředků, trezory klíčů, pravidla klasifikace, přihlašovací údaje, zdroje dat, kontroly, triggery prohledávání, prostředí Integration Runtime, spravované privátní koncové body, pracovní postupy
- Azure AI Vyhledávač – zdroje dat, indexery, indexy, sady dovedností, mapy synonym
- Azure Synapse Analytics – databáze, toky dat, datové sady, skripty jazyka Kusto Query Language (KQL), knihovny, propojení, propojené služby, spravované privátní koncové body, poznámkové bloky, kanály, přiřazení rolí, definice úloh Sparku, konfigurace Sparku, skripty SQL, triggery
Úplný seznam verzí rozhraní API a vzorů koncových bodů najdete v referenčních informacích k dostupným prostředkům v registru Terraformu.