Rövid útmutató: Azure Spring Apps kiépítése ARM-sablonnal

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 lehet Azure Resource Manager-sablont (ARM-sablont) használni egy Azure Spring Apps-fürt üzembe helyezéséhez egy meglévő virtuális hálózatban.

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
  • Alkalmazásgyorsító
  • Alkalmazás élő nézete

Az Azure Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon deklaratív szintaxist használ. Az üzembe helyezés létrehozásához szükséges programozási parancsok sorozatának megírása nélkül írhatja le a tervezett üzembe helyezést.

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 .

  • 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 közvetlenül kezelhetők, és csak belsőleg használják őket 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-tartományokhoz. 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 sablon áttekintése

Az ebben a rövid útmutatóban használt sablonok az Azure Spring Apps referenciaarchitektúrájából származnak.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "springCloudInstanceName": {
            "type": "string",
            "metadata": {
                "description": "The instance name of the Azure Spring Cloud resource"
            }
        },
        "appInsightsName": {
            "type": "string",
            "metadata": {
                "description": "The name of the Application Insights instance for Azure Spring Cloud"
            }
        },
        "laWorkspaceResourceId": {
            "type": "string",
            "metadata": {
                "description": "The resource ID of the existing Log Analytics workspace. This will be used for both diagnostics logs and Application Insights"
            }
        },
        "springCloudAppSubnetID": {
            "type": "string",
            "metadata": {
                "description": "The resourceID of the Azure Spring Cloud App Subnet"
            }
        },
        "springCloudRuntimeSubnetID": {
            "type": "string",
            "metadata": {
                "description": "The resourceID of the Azure Spring Cloud Runtime Subnet"
            }
        },
        "springCloudServiceCidrs": {
            "type": "string",
            "defaultValue": "10.0.0.0/16,10.2.0.0/16,10.3.0.1/16",
            "metadata": {
                "description": "Comma-separated list of IP address ranges in CIDR format. The IP ranges are reserved to host underlying Azure Spring Cloud infrastructure, which should be 3 at least /16 unused IP ranges, must not overlap with any Subnet IP ranges"
            }
        },        
        "tags": {
            "type": "object",
            "metadata": {
                "description": "The tags that will be associated to the Resources"
            },
            "defaultValue": {
                "environment": "lab"
            }
        }
    },
    "variables": {
        "location": "[resourceGroup().location]"                    
    },
    "resources": [
        {
            "type": "Microsoft.Insights/components",
            "name": "[parameters('appInsightsName')]",
            "apiVersion": "2020-02-02",
            "location": "[variables('location')]",
            "tags": "[parameters('tags')]",
            "properties": {
                "Application_Type": "web",
                "ApplicationId": "[parameters('appInsightsName')]",
                "Flow_Type": "Bluefield",
                "Request_Source": "rest",
                "WorkspaceResourceId": "[parameters('laWorkspaceResourceId')]"
            }
        },
        {
            "apiVersion": "2022-03-01-preview",
            "name": "[parameters('springCloudInstanceName')]",
            "location": "[variables('location')]",
            "tags": "[parameters('tags')]",
            "dependsOn": [
                "[resourceId('Microsoft.Insights/components', parameters('appInsightsName'))]"
                
            ],
            "type": "Microsoft.AppPlatform/Spring",
            "sku": {
                "name": "E0",
                "tier": "Enterprise"
            },
            "properties": {
                "networkProfile": {
                    "serviceCidr": "[parameters('springCloudServiceCidrs')]",
                    "serviceRuntimeSubnetId": "[parameters('springCloudRuntimeSubnetID')]",
                    "appSubnetId": "[parameters('springCloudAppSubnetID')]"
                }
            },
            "resources": [
                {
                    "type": "serviceRegistries",
                    "name": "default",
                    "apiVersion": "2022-03-01-preview",
                    "location": "[variables('location')]",
                    "dependsOn": [
                        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
                    ]
                },
                {
                    "type": "configurationServices",
                    "name": "default",
                    "apiVersion": "2022-03-01-preview",
                    "location": "[variables('location')]",
                    "dependsOn": [
                        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
                    ]
                },
                {
                    "type": "gateways",
                    "name": "default",
                    "apiVersion": "2022-03-01-preview",
                    "location": "[variables('location')]",
                    "sku": {
                        "name": "E0",
                        "tier": "Enterprise",
                        "capacity": 2
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
                    ]
                },
                {
                    "type": "apiPortals",
                    "name": "default",
                    "apiVersion": "2022-03-01-preview",
                    "location": "[variables('location')]",
                    "sku": {
                        "name": "E0",
                        "tier": "Enterprise",
                        "capacity": 1
                    },
                    "properties": {
                        "gatewayIds": [
                            "[concat(resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName')), '/gateways/default')]"
                        ]
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
                    ]
                },
                {
                    "type": "Microsoft.AppPlatform/Spring/buildServices/agentPools",
                    "name": "[concat(parameters('springCloudInstanceName'), '/default/default')]",
                    "apiVersion": "2022-03-01-preview",
                    "location": "[variables('location')]",
                    "properties": {
                        "poolSize": {
                            "name": "S1"
                        }
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
                    ]
                }
            ]
        },
        {
            "apiVersion": "2022-03-01-preview",
            "name": "[concat(parameters('springCloudInstanceName'), '/default/default/default')]",
            "type": "Microsoft.AppPlatform/Spring/buildservices/builders/buildpackBindings",            
            "properties": {
                "bindingType": "ApplicationInsights",
                "launchProperties": {
                    "properties": {
                        "sampling_percentage": 10,
                        "connection_string": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName')), '2015-05-01').ConnectionString]"
                    }
                }
            },
            "dependsOn": [
                "[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
            ]
        },
        {
            "type": "Microsoft.AppPlatform/Spring/providers/diagnosticSettings",
            "name": "[concat(parameters('springCloudInstanceName'), '/Microsoft.Insights/monitoring')]",
            "dependsOn": [  
                "[resourceId('Microsoft.AppPlatform/Spring/', parameters('springCloudInstanceName'))]"       
            ],
            "apiVersion": "2017-05-01-preview",
            "properties": {
                "name": "monitoring",
                "workspaceId": "[parameters('laWorkspaceResourceId')]",
                "logs": [
                    {
                        "category": "ApplicationConsole",
                        "enabled": true,
                        "retentionPolicy": {
                            "days": 30,
                            "enabled": false
                        }
                    }
                ]
            }
        }
               
    ],
    "outputs": {
    }
}

A sablonban két Azure-erőforrás van definiálva:

A sablon üzembe helyezése

A sablon üzembe helyezéséhez kövesse az alábbi lépéseket.

Először válassza ki a következő képet az Azure-ba való bejelentkezéshez és egy sablon megnyitásához. A sablon létrehoz egy Azure Spring Apps-példányt egy meglévő virtuális hálózaton, és egy munkaterület-alapú alkalmazáspéldányt Elemzések egy meglévő Azure Monitor Log Analytics-munkaterületen.

Ezután adja meg az alábbi mezők értékeit:

  • Erőforráscsoport: Válassza az Új létrehozása lehetőséget, adjon meg egy egyedi nevet az erőforráscsoportnak, majd kattintson az OK gombra.
  • springCloudInstanceName: Adja meg az Azure Spring Apps-erőforrás nevét.
  • app Elemzések Name: Adja meg az Azure Spring Apps alkalmazás Elemzések példányának nevét.
  • laWorkspaceResourceId: Adja meg a meglévő Log Analytics-munkaterület erőforrás-azonosítóját (például /subscriptions/<your subscription>/resourcegroups/<your Log Analytics erőforráscsoport>/providers/Microsoft.Operational Elemzések/workspaces/<your Log Analytics-munkaterület neve>).)
  • springCloudAppSubnetID: Adja meg az Azure Spring Apps-alkalmazás alhálózatának erőforrás-azonosítóját.
  • springCloudRuntimeSubnetID: Adja meg az Azure Spring Apps Futtatókörnyezet alhálózat erőforrás-azonosítóját.
  • springCloudServiceCidrs: Adja meg az IP-címtartományok vesszővel tagolt listáját (összesen három) CIDR formátumban. Az IP-tartományok a mögöttes Azure Spring Apps-infrastruktúra üzemeltetésére vannak fenntartva. Ennek a három tartománynak legalább /16 nem használt IP-tartománynak kell lennie, és nem lehetnek átfedésben a hálózaton belül használt routable alhálózati IP-tartományokkal.
  • címkék: Adja meg az egyéni címkéket.

Végül válassza a Véleményezés + Létrehozás , majd a Létrehozás lehetőséget.

Ü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 az erőforráscsoportot, amely törli az erőforráscsoport erőforrásait. Ha törölni szeretné az erőforráscsoportot az Azure CLI vagy az Azure PowerShell használatával, használja a következő parancsokat:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

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 EGY ARM-sablon használatával, majd érvényesítette az üzembe helyezést. Ha többet szeretne megtudni az Azure Spring Appsről és az Azure Resource Managerről, folytassa a következő erőforrásokkal.