Aracılığıyla paylaş


Hızlı Başlangıç: ARM şablonu kullanarak Azure Spring Apps sağlama

Not

Temel, Standardve Enterprise planları 17 Mart 2025'te kullanımdan kaldırma dönemine girdi. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.

Bu makale şunlar için geçerlidir: ❎ Temel ✅ Standart ✅ Kurumsal

Bu hızlı başlangıçta Azure Spring Apps kümesini mevcut bir sanal ağa dağıtmak için Azure Resource Manager şablonunun (ARM şablonu) nasıl kullanılacağı açıklanmaktadır.

Azure Spring Apps, kod değişikliği yapmadan Spring uygulamalarını Azure'a dağıtmayı kolaylaştırır. Hizmet, geliştiricilerin kodlarına odaklanabilmesi için Spring uygulamalarının altyapısını yönetir. Azure Spring Apps kapsamlı izleme ve tanılama, yapılandırma yönetimi, hizmet bulma, CI/CD tümleştirmesi, mavi-yeşil dağıtımlar ve daha fazlasını kullanarak yaşam döngüsü yönetimi sağlar.

Kurumsal dağıtım planı aşağıdaki Tanzu bileşenlerini içerir:

  • Yapı Hizmeti
  • Uygulama Yapılandırma Hizmeti
  • Hizmet Kayıt Defteri
  • Spring Bulut Ağ Geçidi
  • API Portalı
  • Uygulama Hızlandırıcısı
  • Uygulama Canlı Görünümü

Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablon bildirim temelli sözdizimi kullanır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

Önkoşullar

  • Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  • Azure Spring Apps kümesi için, biri Hizmet Çalışma Zamanı, diğeri Spring Uygulamaları için olmak üzere iki ayrılmış alt ağ. Alt ağ ve sanal ağ gereksinimleri için Azure Spring Apps'i sanal ağda dağıtma bölümünün Sanal ağ gereksinimleri bölümüne bakın.

  • Azure Spring Apps tanılama ayarları ve çalışma alanı tabanlı Application Insights kaynağı için mevcut bir Log Analytics çalışma alanı. Daha fazla bilgi için bkz. Tanılama ayarları ile günlükleri ve ölçümleri analiz etme ve Azure Spring Apps'te Application Insights Java İşlem İçi Aracısı.

  • Azure Spring Apps kümesi tarafından kullanılmak üzere tanımladığınız, her biri en az /16 olan üç iç Sınıfsız Etki Alanı Arası Yönlendirme (CIDR) aralığı. Bu CIDR aralıkları doğrudan yönlendirilebilir değildir ve yalnızca Azure Spring Apps kümesi tarafından dahili olarak kullanılır. Kümeler, iç Azure Spring Apps CIDR aralıkları için 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 veya 192.0.2.0/24 kullanamaz. Kümeler, küme sanal ağ adres aralığına dahil edilen IP aralıklarını da kullanamaz.

  • Sanal ağa verilen hizmet izni. Azure Spring Apps Kaynak Sağlayıcısı, sanal ağda ayrılmış ve dinamik bir hizmet sorumlusu sağlamak için sanal ağınızdaki User Access Administrator ve Network Contributor izinlerine ihtiyaç duyar. Bu izinler, daha fazla dağıtım ve bakım için gereklidir. Yönergeler ve daha fazla bilgi için Azure Spring Apps'i sanal ağa dağıtma bölümünün Sanal ağa hizmet izni verme bölümüne bakın.

  • Azure Güvenlik Duvarı veya Ağ Sanal Gereci (NVA) kullanıyorsanız, aşağıdaki önkoşulları da karşılamanız gerekir:

    • Ağ ve tam nitelikli etki alanı adı (FQDN) kuralları. Daha fazla bilgi için bkz . Sanal ağ gereksinimleri.
    • Hizmet çalışma zamanının ve Spring uygulaması alt ağlarının her birine uygulanan benzersiz bir Kullanıcı Tanımlı Yol (UDR). UDR'ler hakkında daha fazla bilgi için bkz. Sanal ağ trafiği yönlendirme. UDR, Azure Spring Apps kümesini dağıtmadan önce hedefi NVA'nız olan bir 0.0.0.0/0 rotası ile yapılandırılmalıdır. Daha fazla bilgi için Azure Spring Apps'i sanal ağa dağıtma bölümünün Kendi yol tablonuzu getirin bölümüne bakın.

Şablonu gözden geçirme

Bu hızlı başlangıçta kullanılan şablonlar Azure Spring Apps Başvuru Mimarisi'nden alınıyor.

{
    "$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-preview",
            "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": "S0",
                "tier": "Standard"
            },
            "properties": {
                "networkProfile": {
                    "serviceCidr": "[parameters('springCloudServiceCidrs')]",
                    "serviceRuntimeSubnetId": "[parameters('springCloudRuntimeSubnetID')]",
                    "appSubnetId": "[parameters('springCloudAppSubnetID')]"
                }
            }
        },
        {
            "apiVersion": "2022-03-01-preview",
            "name": "[concat(parameters('springCloudInstanceName'), '/default')]",
            "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
            "properties": {
                "traceEnabled": true,
                "appInsightsInstrumentationKey": "[reference(resourceId('Microsoft.Insights/components', parameters('appInsightsName')), '2020-02-02-preview').InstrumentationKey]"
            },
            "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": {
    }
}

Şablonda iki Azure kaynağı tanımlanır:

Şablonu dağıtma

Şablonu dağıtmak için aşağıdaki adımları kullanın.

İlk olarak, Azure'da oturum açmak ve bir şablon açmak için aşağıdaki görüntüyü seçin. Şablon, mevcut bir Sanal Ağda bir Azure Spring Apps örneği ve mevcut bir Azure İzleyici Log Analytics Çalışma Alanında çalışma alanına dayalı bir Application Insights örneği oluşturur.

Ardından, aşağıdaki alanların değerlerini girin:

  • Kaynak Grubu: Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve tamam'ı seçin.
  • springCloudInstanceName: Azure Spring Apps kaynağının adını girin.
  • appInsightsName: Azure Spring Apps için Application Insights örneğinin adını girin.
  • laWorkspaceResourceId: Mevcut Log Analytics çalışma alanının kaynak kimliğini girin (örneğin, /subscriptions/aboneliğiniz</>resourcegroups/<Log Analytics kaynak grubunuz>/sağlayıcılarınız/Microsoft.OperationalInsights/workspaces/<Log Analytics çalışma alanınızın adı>.)
  • springCloudAppSubnetID: Azure Spring Apps Uygulama Alt Ağı'nın kaynak kimliğini girin.
  • springCloudRuntimeSubnetID: Azure Spring Apps Çalışma Zamanı Alt Ağı'nın kaynak kimliğini girin.
  • springCloudServiceCidrs: CIDR biçiminde ip adresi aralıklarının virgülle ayrılmış bir listesini (toplamda üç tane) girin. IP aralıkları, temel alınan Azure Spring Apps altyapısını barındırmak için ayrılmıştır. Bu üç aralık en az /16 kullanılmayan IP aralıkları olmalı ve ağ içinde kullanılan yönlendirilebilir alt ağ IP aralıklarıyla çakışmamalıdır.
  • etiketler: Herhangi bir özel etiketi girin.

Son olarak Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin.

Dağıtılan kaynakları gözden geçirme

Dağıtılan kaynakları denetlemek için Azure portalını veya dağıtılan kaynakları listelemek için Azure CLI veya Azure PowerShell betiğini kullanabilirsiniz.

Kaynakları temizleme

Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Kaynak grubunu Azure CLI veya Azure PowerShell kullanarak silmek için aşağıdaki komutları kullanın:

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

Sonraki adımlar

Bu hızlı başlangıçta, ARM şablonu kullanarak mevcut bir sanal ağa bir Azure Spring Apps örneğini dağıttınız ve ardından dağıtımı doğruladınız. Azure Spring Apps ve Azure Resource Manager hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara geçin.