App per le funzioni Terraform Azure dal caricamento di file

Aug 24 2020

Sto provando a creare un'app per le funzioni di Azure java caricando un file zip dal file system locale. Di seguito il codice. Funziona come previsto quando viene eseguito dal sistema Windows 10. Lo stesso codice non sembra funzionare durante l'esecuzione dal sistema Ubuntu, non si sono verificati errori ma l'app per le funzioni non ha alcuna funzione sul portale Azure. La versione di Terraform è la stessa (Terraform v0.12.28) sia su Windows che su Ubuntu. Eppure non sembra funzionare su Ubuntu. di seguito è riportato il messaggio di errore sul portale di

Azure , app per le funzioni var.functionapp = "func_java.zip", il file zip si trova nella stessa cartella di main.tf

├── main.tf
├── tran_fun.zip
└── variables.tf


resource "azurerm_storage_blob" "appcode" {
    name = "functionapp.zip"
    storage_account_name = "${azurerm_storage_account.storage_account.name}" storage_container_name = "${azurerm_storage_container.storage_container_deployement.name}"
    type = "Block"
    source = "${var.functionapp}" } # // /***********************function app **********************************/ resource "azurerm_app_service_plan" "spp_service_plan" { name = "${local.app_serv_plan_name}"
  resource_group_name = azurerm_resource_group.rg_creation.name
  location            = azurerm_resource_group.rg_creation.location
  kind                = "FunctionApp"

  sku {
    tier = "Dynamic"
    size = "Y1"
  }
}

resource "azurerm_function_app" "function_app" {
  name                      =  "${local.app_serv_name}" resource_group_name = azurerm_resource_group.rg_creation.name location = azurerm_resource_group.rg_creation.location app_service_plan_id = azurerm_app_service_plan.spp_service_plan.id storage_connection_string = azurerm_storage_account.storage_account.primary_connection_string app_settings = { FUNCTIONS_WORKER_RUNTIME = "java" FUNCTIONS_EXTENSION_VERSION = "~3" APPINSIGHTS_INSTRUMENTATIONKEY = azurerm_application_insights.app_insights.instrumentation_key APPLICATIONINSIGHTS_CONNECTION_STRING = "InstrumentationKey=${azurerm_application_insights.app_insights.instrumentation_key}"
    HANA_CREDENTIALS = var.hanaCredentials
    TENANT_ID = var.cptenantId
    HASH = "${filebase64sha256("${var.functionapp}")}"
    WEBSITE_RUN_FROM_PACKAGE = "https://${azurerm_storage_account.storage_account.name}.blob.core.windows.net/${azurerm_storage_container.storage_container_deployement.name}/${azurerm_storage_blob.appcode.name}${data.azurerm_storage_account_sas.sas.sas}"
   
 }
}

Di seguito è riportato il messaggio di errore dalla console dell'app per le funzioni

Risposte

1 NancyXiong Aug 25 2020 at 02:59

È possibile definire la variabile in questo modo se il .zipfile si trova nella stessa cartella di main.tf.

variable "functionapp" {
    type = "string"
    default = "./func_java.zip"
}

Ha funzionato dalla mia parte.

Per maggiori dettagli, potresti leggere questo blog .

karas27 Aug 25 2020 at 10:32

Il problema era con il file zip. Il file zip è stato danneggiato quando è stato spostato da Windows