我正在通過Terraform創建一個Azure應用服務資源和一個應用注冊資源(以及應用服務和其他與本問題無關的資源,因為它們運行良好)。
resource "azurerm_app_service"/span> "app"/span> {
name = var.app_service_name。
location = var.resource_group_location
resource_group_name = azurerm_resource_group.rg.name
app_service_plan_id = azurerm_app_service_plan.plan-app.id
app_settings = {
"AzureAd:ClientId"/span> = azuread_application.appregistration.application_id
}
site_config {
ftps_state = var.app_service_ftps_state
}
}
資源 "azuread_application"/span> "appregistration"/span> {
display_name = azurerm_app_service.app.name
owners = [ data.azuread_client_config.current.object_id]
sign_in_audience = "AzureADMyOrg"/span>
fallback_public_client_enabled = true
網路 {
homepage_url = var.appreg_web_homepage_url。
logout_url = var.appreg_web_logout_url
redirect_uris = [var.appreg_web_homepage_url, var.appreg_web_redirect_uri]
implicit_grant {
access_token_issuance_enabled = true.
id_token_issuance_enabled = true >。
}
}
}
輸出 "appreg_application_id" {
值 = azuread_application.appregistration.application_id
我需要在應用服務資源的app_settings塊中添加應用注冊客戶端/應用ID。
我在上述配置中得到的錯誤是:
{"@level":"error", "@message":"Error: Cycle: azuread_application.appregistration, azurerm_app_service.app","@module":"terraform. ui","@timestamp":"2021-09-15T10:54:31. 753401Z","診斷":{"嚴重性"。 "錯誤","摘要":"周期: azuread_application. appregistration, azurerm_app_service.app","detail":""},"type":"diagnostic"}.
注意,輸出變數正確顯示了應用程式的ID。
uj5u.com熱心網友回復:
你有一個回圈錯誤,因為你有兩個資源互相參考。Terraform建立了一個有向無環圖,以確定創建(或銷毀)資源的順序,一個資源或資料源的資訊通常會流入另一個資源,從而決定這個順序。
在您的案例中,您的azuread_application.appregistration資源參考了azurerm_app_service.app.name引數,而azurerm_app_service.app資源需要azuread_application.appregistration.application_id屬性。
我對 Azure 了解不多,但在我看來,azurerm_app_service資源需要在azuread_application資源之前創建,因此我希望鏈接會在這個方向。
因為你已經將azurerm_app_service.app.name引數設定為var.app_service_name,那么你可以直接將var.app_service_name傳遞給azuread_application.appregistration.display_name以達到同樣的結果,但要打破回圈錯誤。
resource "azurerm_app_service"/span> "app"/span> {
name = var.app_service_name。
location = var.resource_group_locationresource_group_name = azurerm_resource_group.rg.name
app_service_plan_id = azurerm_app_service_plan.plan-app.id
app_settings = {
"AzureAd:ClientId"/span> = azuread_application.appregistration.application_id
}
site_config {
ftps_state = var.app_service_ftps_state
}
}
資源 "azuread_application"/span> "appregistration"/span> {
display_name = var.app_service_name。
owners = [data.azuread_client_config.current.object_id)
sign_in_audience = "AzureADMyOrg"/span>
fallback_public_client_enabled = true
網路 {
homepage_url = var.appreg_web_homepage_url。
logout_url = var.appreg_web_logout_url
redirect_uris = [var.appreg_web_homepage_url, var.appreg_web_redirect_uri]
implicit_grant {
access_token_issuance_enabled = true.
id_token_issuance_enabled = true >。
}
}
}
輸出 "appreg_application_id" {
值 = azuread_application.appregistration.application_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/308867.html
標籤:
