मैं azurerm_resource_group_template_deployment के लिए इनलाइन परिनियोजन का उपयोग कर रहा हूं और मैं एक पैरामीटर पास कर रहा हूं जो किसी अन्य टेराफॉर्म संसाधन के नाम का उपयोग करता है।
कोड:
resource "azurerm_app_service" "webapi" {
name = "${lower(var.deploymentEnvironment)}-webapi"
location = azurerm_resource_group.frontendResourceGroup.location
resource_group_name = azurerm_resource_group.frontendResourceGroup.name
app_service_plan_id = azurerm_app_service_plan.appSvcPlan.id
}
resource "azurerm_resource_group_template_deployment" "webapi_virtual_directory" {
name = "webapi_virtual_directory"
resource_group_name = azurerm_resource_group.frontendResourceGroup.name
deployment_mode = "Incremental"
template_content = <<TEMPLATE
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"webAppName": {
"type": "String"
},
"virtualApplications":{
"type": "array",
"defaultValue":[
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false,
"virtualDirectories": null
}
]
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Web/sites/config",
"name": "[concat(parameters('webAppName'), '/web')]",
"apiVersion": "2020-06-01",
"properties": {
"virtualApplications": "[parameters('virtualApplications')]"
},
"dependsOn": []
}
]
}
TEMPLATE
parameters_content = jsonencode({webAppName = azurerm_app_service.webapi.name})
depends_on = [azurerm_app_service.webapi]
}
जब मैं टेराफॉर्म लागू कमांड चलाता हूं, तो मुझे त्रुटि मिलती है:
त्रुटि: मान्य टेम्पलेट परिनियोजन "webapi_virtual_directory" (संसाधन समूह "frontendapps-rg"): सत्यापन का अनुरोध: संसाधन। परिनियोजन क्लाइंट # मान्य: अनुरोध भेजने में विफलता: StatusCode = 400 - मूल त्रुटि: कोड = "अवैध अनुरोध सामग्री" संदेश = "अनुरोध सामग्री अमान्य था और deserialized नहीं किया जा सकता: 'Azure.ResourceManager.Deployments.Templates.Definitions.DeploymentParameterDefinition' टाइप करने के लिए मान "ci-webapi" कनवर्ट करने में त्रुटि। पथ 'properties.parameters.webAppName', पंक्ति 1, स्थिति 861।'। "
main.tf लाइन 134 पर, संसाधन "azurerm_resource_group_template_deployment" "webapi_virtual_directory" में: 134: संसाधन "azurerm_resource_group_template_deployment" "webapi_virtual_directory" {
1 उत्तर
parameters_content
संपत्ति का उपयोग करने के बजाय, मैंने defaultValue
को template_content
में इस तरह जोड़ा:
resource "azurerm_resource_group_template_deployment" "webapi_virtual_directory" {
name = "webapi_virtual_directory"
resource_group_name = azurerm_resource_group.frontendResourceGroup.name
deployment_mode = "Incremental"
template_content = <<TEMPLATE
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"webAppName": {
"type": "String",
"defaultValue": "${azurerm_app_service.webapi.name}"
},
"virtualApplications":{
"type": "array",
"defaultValue":[
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false,
"virtualDirectories": null
}
]
}
},
"resources": [
{
"type": "Microsoft.Web/sites/config",
"name": "[concat(parameters('webAppName'), '/web')]",
"apiVersion": "2020-06-01",
"properties": {
"virtualApplications": "[parameters('virtualApplications')]"
}
}
]
}
TEMPLATE
depends_on = [azurerm_app_service.webapi]
}
अब मुझे टेम्पलेट परिनियोजन को सत्यापित करने में त्रुटि नहीं मिलती है।
संबंधित सवाल
नए सवाल
terraform
कोड के रूप में अवसंरचना को परिभाषित करने के लिए हाशिकॉर्प का एक उपकरण। ऑन-टॉपिक प्रश्न उपकरण के उपयोग से संबंधित हैं या विशिष्ट संरचनाओं को परिभाषित करने के लिए 'कोड' (HCL) का उपयोग कैसे करें। इस टैग का उपयोग अक्सर सार्वजनिक-क्लाउड टैग के साथ किया जाता है, जैसे "amazon-web-services", "google-cloud-platform" या "azure" जो कि पूछे जा रहे प्रश्न को और अधिक परिभाषित करता है।