Rövid útmutató: Azure Spring Apps kiépítése a Terraform használatával

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik:❌ Basic ✔️ Standard ✔️ Enterprise

Ez a rövid útmutató bemutatja, hogyan helyezhet üzembe Azure Spring Apps-fürtöt egy meglévő virtuális hálózaton a Terraform használatával.

Az Azure Spring Apps megkönnyíti a Spring-alkalmazások üzembe helyezését az Azure-ban kódmódosítások nélkül. A szolgáltatás kezeli a Spring-alkalmazások infrastruktúráját, hogy a fejlesztők a kódjukra összpontosíthassanak. Az Azure Spring Apps átfogó monitorozási és diagnosztikai, konfigurációkezelési, szolgáltatásfelderítési, CI/CD-integrációs, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet.

A vállalati üzembehelyezési terv a következő Tanzu-összetevőket tartalmazza:

  • Build szolgáltatás
  • Alkalmazáskonfigurációs szolgáltatás
  • Szolgáltatásregisztrációs adatbázis
  • Spring Cloud Gateway
  • API Portal

Az API Portal összetevő akkor jelenik meg, amikor elérhetővé válik az AzureRM Terraform-szolgáltatón keresztül.

Az egyéni tartományi támogatással kapcsolatos további testreszabási lehetőségekért tekintse meg az Azure Spring Apps Terraform szolgáltatói dokumentációját.

Előfeltételek

  • Azure-előfizetés. Ha nem rendelkezik előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .
  • Hashicorp Terraform
  • Két dedikált alhálózat az Azure Spring Apps-fürthöz, az egyik a szolgáltatás futtatókörnyezetéhez, a másik a Spring-alkalmazásokhoz. Az alhálózati és virtuális hálózati követelményekről az Azure Spring Apps virtuális hálózaton való üzembe helyezésének virtuális hálózatra vonatkozó követelményeit ismertető szakaszában olvashat.
  • Meglévő Log Analytics-munkaterület az Azure Spring Apps diagnosztikai beállításaihoz és egy munkaterület-alapú alkalmazás-Elemzések erőforráshoz. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal és alkalmazás Elemzések Java In-Process Agent az Azure Spring Appsben.
  • Három belső, osztály nélküli tartományközi útválasztási (CIDR) tartomány (legalább /16 mindegyik), amelyet az Azure Spring Apps-fürt által használtként azonosított. Ezek a CIDR-tartományok nem lesznek közvetlenül elérhetőek, és csak belsőleg fogják használni az Azure Spring Apps-fürt. A fürtök nem használhatják a 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 vagy 192.0.2.0/24 verziót a belső Azure Spring Apps CIDR-hez. A fürtök a fürt virtuális hálózati címtartományában található IP-címtartományokat sem használhatják.
  • A virtuális hálózatnak adott szolgáltatásengedély. Az Azure Spring Apps-erőforrás-szolgáltató tulajdonosi engedélyt igényel a virtuális hálózathoz, hogy dedikált és dinamikus szolgáltatásnevet biztosíthasson a virtuális hálózaton a további üzembe helyezéshez és karbantartáshoz. Útmutatásért és további információkért tekintse meg az Azure Spring Apps virtuális hálózaton való üzembe helyezésének virtuális hálózatra vonatkozó engedélyének megadását ismertető szakaszt.
  • Ha Azure Firewallt vagy hálózati virtuális berendezést (NVA) használ, az alábbi előfeltételeknek is meg kell felelnie:
    • Hálózati és teljes tartománynévre (FQDN) vonatkozó szabályok. További információ: Virtuális hálózat követelményei.
    • Az egyes szolgáltatás-futtatókörnyezetekre és Spring-alkalmazások alhálózatára alkalmazott egyedi felhasználói útvonal (UDR). Az UDR-ekről további információt a Virtuális hálózati forgalom útválasztása című témakörben talál. Az UDR-t a 0.0.0.0/0 útvonallal kell konfigurálni az NVA célhelyével, mielőtt üzembe helyeznénk az Azure Spring Apps-fürtöt. További információt az Azure Spring Apps virtuális hálózaton való üzembe helyezésének saját útvonaltábla-szakaszában talál.
  • Ha első alkalommal helyez üzembe Azure Spring Apps Enterprise-csomagpéldányt a célelőfizetésben, tekintse meg a Nagyvállalati csomag Követelményei szakaszát az Azure Marketplace-en.

A Terraform-terv áttekintése

A rövid útmutatóban használt konfigurációs fájl az Azure Spring Apps referenciaarchitektúrájából származik.

# Azure provider version 

terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "= 3.21.1"
    }
  }
}

provider "azurerm" {
    features {} 
}

### Create Resource group 
resource "azurerm_resource_group" "sc_corp_rg" {
    name      = var.resource_group_name
    location  = var.location
}

### Create Application Insights
resource "azurerm_application_insights" "sc_app_insights" {
  name                = var.app_insights_name
  location            = var.location
  resource_group_name = var.resource_group_name
  application_type    = "web"
  workspace_id        = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"
 
  depends_on = [azurerm_resource_group.sc_corp_rg]
}

### Create Spring Cloud Service
resource "azurerm_spring_cloud_service" "sc" {
  name                = var.sc_service_name 
  resource_group_name = var.resource_group_name
  location            = var.location
  sku_name            = "E0" 

  # Tanzu service registry - Set to true if Enterprise Tier
  service_registry_enabled = true
  build_agent_pool_size    = "S1"

  
  network {
    app_subnet_id                   = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.app_subnet_id}"
    service_runtime_subnet_id       = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.service_runtime_subnet_id}"
    cidr_ranges                     = var.sc_cidr
  }
  
  timeouts {
      create = "60m"
      delete = "2h"
  }
  
 
  depends_on = [azurerm_resource_group.sc_corp_rg]
  tags = var.tags
  
}

### Update Diags setting for Spring Cloud Service

resource "azurerm_monitor_diagnostic_setting" "sc_diag" {
  name                        = "monitoring"
  target_resource_id          = azurerm_spring_cloud_service.sc.id
  log_analytics_workspace_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"

  log {
    category = "ApplicationConsole"
    enabled  = true

    retention_policy {
      enabled = false
    }
  }

  metric {
    category = "AllMetrics"

    retention_policy {
      enabled = false
    }
  }
}


# Begin Tanzu Components


resource "azurerm_spring_cloud_build_pack_binding" "appinsights-binding" {
  name                    = "appins-binding"
  spring_cloud_builder_id = "${azurerm_spring_cloud_service.sc.id}/buildServices/default/builders/default"
  binding_type            = "ApplicationInsights"
  launch {
    properties = {
      sampling_percentage = "10"
    }

    secrets = {
      connection-string   = azurerm_application_insights.sc_app_insights.connection_string
    }
  }
}


# Configuration service
resource "azurerm_spring_cloud_configuration_service" "configservice" {
  name                    = "default"
  spring_cloud_service_id = azurerm_spring_cloud_service.sc.id
}

# Gateway
resource "azurerm_spring_cloud_gateway" "scgateway" {
  name                    = "default"
  spring_cloud_service_id = azurerm_spring_cloud_service.sc.id
  instance_count          = 2 
}

resource "azurerm_spring_cloud_api_portal" "apiportal" {
  name                          = "default"
  spring_cloud_service_id       = azurerm_spring_cloud_service.sc.id
  gateway_ids                   = [azurerm_spring_cloud_gateway.scgateway.id]
  https_only_enabled            = false
  public_network_access_enabled = true
  instance_count                = 1
}

A Terraform-terv alkalmazása

A Terraform-terv alkalmazásához kövesse az alábbi lépéseket:

  1. Mentse helyileg a Standard vagy a Nagyvállalati csomag variables.tf fájlját, majd nyissa meg egy szerkesztőben.

  2. Szerkessze a fájlt a következő értékek hozzáadásához:

    • Annak az Azure-fióknak az előfizetési azonosítója, amelybe üzembe helyez.

    • Az Azure Spring Apps elérhető régióiból származó üzembehelyezési hely, ahogyan az a régiónként elérhető termékekben is látható. A helynév rövid formájára lesz szüksége. Az érték lekéréséhez az alábbi paranccsal hozza létre az Azure-helyek listáját, majd keresse meg a kiválasztott régió névértékét .

      az account list-locations --output table
      
  3. Szerkessze a fájlt a következő új üzembehelyezési információk hozzáadásához:

    • Annak az erőforráscsoportnak a neve, amelybe üzembe kíván helyezni.
    • Az Azure Spring Apps üzembe helyezéséhez választott név.
    • Az Alkalmazás Elemzések erőforráshoz választott név.
    • Három CIDR-tartomány (legalább /16), amelyek az Azure Spring Apps háttérinfrastruktúra üzemeltetésére szolgálnak. A CIDR-tartományok nem lehetnek átfedésben a célalhálózat meglévő CIDR-tartományaival
    • A címkéket támogató összes erőforráson címkékként alkalmazandó kulcs-/értékpárok. További információ: Címkék használata az Azure-erőforrások és a felügyeleti hierarchia rendszerezéséhez
  4. Szerkessze a fájlt a következő meglévő infrastruktúra-információk hozzáadásához:

    • Annak az erőforráscsoportnak a neve, amelyben a meglévő virtuális hálózat található.
    • A meglévő hatókör virtuális hálózatának neve.
    • Az Azure Spring Apps Application Service által használandó meglévő alhálózat neve.
    • Az Azure Spring Apps Futtatókörnyezet szolgáltatás által használandó meglévő alhálózat neve.
    • Az Azure Log Analytics-munkaterület neve.
  5. Futtassa a következő parancsot a Terraform-modulok inicializálásához:

    terraform init
    
  6. Futtassa a következő parancsot a Terraform üzembehelyezési tervének létrehozásához:

    terraform plan -out=springcloud.plan
    
  7. Futtassa a következő parancsot a Terraform üzembehelyezési tervének alkalmazásához:

    terraform apply springcloud.plan
    

Üzembe helyezett erőforrások áttekintése

Az Azure Portal használatával ellenőrizheti az üzembe helyezett erőforrásokat, vagy az Azure CLI-vel vagy az Azure PowerShell-szkripttel listázhatja az üzembe helyezett erőforrásokat.

Az erőforrások eltávolítása

Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, törölje a cikkben létrehozott erőforrásokat az alábbi paranccsal.

terraform destroy -auto-approve

Következő lépések

Ebben a rövid útmutatóban üzembe helyezett egy Azure Spring Apps-példányt egy meglévő virtuális hálózatban a Terraform használatával, majd érvényesítette az üzembe helyezést. Ha többet szeretne megtudni az Azure Spring Appsről, folytassa az alábbi forrásanyagokkal.