Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 makale, Application Gateway kullanarak uygulamaların internete nasıl açılacağını açıklar. Sanal ağınızda bir Azure Spring Apps hizmet örneği dağıtıldığında, hizmet örneğindeki uygulamalara yalnızca özel ağ üzerinden erişilebilir. Uygulamaların İnternet'te erişilebilir olmasını sağlamak için Azure Application Gateway ile tümleştirmeniz gerekir.
Önkoşullar
- Azure CLI 2.0.4 veya sonraki sürümü.
- Varsayılan
.private.azuremicroservices.ioetki alanı soneki kullanılarak özel ağ üzerinden erişilebilen bir uygulamayla sanal ağda dağıtılan bir Azure Spring Apps hizmet örneği. Daha fazla bilgi için bkz . Azure Spring Apps'i sanal ağda dağıtma - Uygulamaya erişmek üzere kullanılacak özel bir alan adı olarak.
- Key Vault'ta depolanan ve HTTPS dinleyicisini oluşturmak için kullanılacak özel etki alanıyla eşleşen bir sertifika. Daha fazla bilgi için Öğretici: Azure Key Vault'ta bir sertifika içeri aktarma konusuna bakın.
Azure Spring Apps için Application Gateway'i yapılandırma
Tarayıcı tarafından görüldüğü gibi etki alanı adının Application Gateway'in trafiği Azure Spring Apps arka ucuna yönlendirmek için kullandığı ana bilgisayar adıyla aynı olmasını öneririz. Bu öneri, Azure Spring Apps'te barındırılan ve bir sanal ağda bulunan uygulamaları kullanıma sunmak için Application Gateway kullanırken en iyi deneyimi sağlar. Application Gateway tarafından sunulan etki alanı, Azure Spring Apps tarafından kabul edilen etki alanından farklıysa, tanımlama bilgileri ve örneğin oluşturulan yeniden yönlendirme URL'leri bozulabilir. Daha fazla bilgi için Sunucu adı koruma bölümüne bkz.
Azure Spring Apps'in önünde Application Gateway'i yapılandırmak için aşağıdaki adımları kullanın.
- Azure Spring Apps'i sanal ağa dağıtma başlığındaki yönergeleri izleyin.
- Özel bir ağda uygulamanıza erişme başlığındaki yönergeleri izleyin.
- Seçtiğiniz etki alanı için bir sertifika alın ve bunu Key Vault'ta depolayın. Daha fazla bilgi için Öğretici: Azure Key Vault'ta bir sertifika içeri aktarma konusuna bakın.
- Azure Spring Apps'e dağıtılan bir uygulamada Key Vault'tan özel bir etki alanı ve ilgili sertifika yapılandırın. Daha fazla bilgi için bkz Kılavuz: Mevcut özel etki alanını Azure Spring Apps'e eşleme.
- Application Gateway'i aşağıdaki listeye göre yapılandırılmış bir sanal ağa dağıtın:
- Arka uç havuzunda Azure Spring Apps'i kullanın ve
private.azuremicroservices.ioile biten etki alanına referans gösterilir. - Key Vault'tan aynı sertifikayı kullanan bir HTTPS dinleyicisi ekleyin.
- Azure Spring Apps üzerinde yapılandırılmış özel etki alanı adını,
private.azuremicroservices.ioile belirtilen etki alanı soneki yerine kullanan HTTP ayarlarını kullanarak sanal ağı yapılandırın.
- Arka uç havuzunda Azure Spring Apps'i kullanın ve
- Genel DNS'nizi Application Gateway'e işaret eden şekilde yapılandırın.
Değişkenleri tanımlama
Ardından, Azure Spring Apps'i bir sanal ağda dağıtma bölümünde belirtildiği gibi oluşturduğunuz kaynak grubu ve sanal ağ için değişkenleri tanımlamak için aşağıdaki komutları kullanın. Değerleri gerçek ortamınıza göre özelleştirin. tanımladığınızda SPRING_APP_PRIVATE_FQDNURI'den kaldırın https:// .
export SUBSCRIPTION='subscription-id'
export RESOURCE_GROUP='my-resource-group'
export LOCATION='eastus'
export SPRING_CLOUD_NAME='name-of-spring-cloud-instance'
export APPNAME='name-of-app-in-azure-spring-apps'
export SPRING_APP_PRIVATE_FQDN='$APPNAME.private.azuremicroservices.io'
export VIRTUAL_NETWORK_NAME='azure-spring-apps-vnet'
export APPLICATION_GATEWAY_SUBNET_NAME='app-gw-subnet'
export APPLICATION_GATEWAY_SUBNET_CIDR='10.1.2.0/24'
Azure'da oturum açma
Azure CLI'da oturum açmak ve etkin aboneliğinizi seçmek için aşağıdaki komutu kullanın.
az login
az account set --subscription $SUBSCRIPTION
Sertifika alma
Üretim dağıtımları için büyük olasılıkla genel olarak imzalanan bir sertifika kullanacaksınız. Bu durumda sertifikayı Azure Key Vault'a aktarın. Daha fazla bilgi için Öğretici: Azure Key Vault'ta bir sertifika içeri aktarma konusuna bakın. Sertifikanın tüm sertifika zincirini içerdiğinden emin olun.
Azure Spring Apps'te genel etki alanı adını yapılandırma
Trafik, genel etki alanı adını kullanarak Azure Spring Apps'te dağıtılan uygulamayı girer. Uygulamanızı bu ana bilgisayar adını dinleyecek şekilde ve HTTPS üzerinden yapılandırmak için, aşağıdaki komutları kullanarak uygulamanıza özel bir alan adı ekleyin.
export KV_NAME='name-of-key-vault'
export KV_RG='resource-group-name-of-key-vault'
export CERT_NAME_IN_AZURE_SPRING_APPS='name-of-certificate-in-Azure-Spring-Apps'
export CERT_NAME_IN_KEY_VAULT='name-of-certificate-with-intermediaries-in-key-vault'
export DOMAIN_NAME=myapp.mydomain.com
# provide permissions to Azure Spring Apps to read the certificate from Key Vault:
export VAULTURI=$(az keyvault show \
--resource-group $KV_RG \
--name $KV_NAME \
--query properties.vaultUri \
--output tsv)
# get the object id for the Azure Spring Apps Domain-Management Service Principal:
export ASADM_OID=$(az ad sp show \
--id 03b39d0f-4213-4864-a245-b1476ec03169 \
--query objectId \
--output tsv)
# allow this Service Principal to read and list certificates and secrets from Key Vault:
az keyvault set-policy \
--resource-group $KV_RG \
--name $KV_NAME \
--object-id $ASADM_OID \
--certificate-permissions get list \
--secret-permissions get list
# add custom domain name and configure TLS using the certificate:
az spring certificate add \
--resource-group $RESOURCE_GROUP \
--service $SPRING_CLOUD_NAME \
--name $CERT_NAME_IN_AZURE_SPRING_APPS \
--vault-certificate-name $CERT_NAME_IN_KEY_VAULT \
--vault-uri $VAULTURI
az spring app custom-domain bind \
--resource-group $RESOURCE_GROUP \
--service $SPRING_CLOUD_NAME \
--domain-name $DOMAIN_NAME \
--certificate $CERT_NAME_IN_AZURE_SPRING_APPS \
--app $APPNAME
Ağ kaynakları oluşturma
Oluşturulacak Azure Uygulaması Lication Gateway, Azure Spring Apps hizmet örneğiyle aynı sanal ağı veya eşlenmiş sanal ağı birleştirir. önce kullanarak az network vnet subnet createsanal ağda Application Gateway için yeni bir alt ağ oluşturun ve ayrıca kullanarak az network public-ip createApplication Gateway'in Ön Ucu olarak bir Genel IP adresi oluşturun.
export APPLICATION_GATEWAY_PUBLIC_IP_NAME='app-gw-public-ip'
az network vnet subnet create \
--name $APPLICATION_GATEWAY_SUBNET_NAME \
--resource-group $RESOURCE_GROUP \
--vnet-name $VIRTUAL_NETWORK_NAME \
--address-prefix $APPLICATION_GATEWAY_SUBNET_CIDR
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--name $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--allocation-method Static \
--sku Standard
Application Gateway için yönetilen kimlik oluşturma
Application Gateway'in sertifikayı okumak için Key Vault'a erişebilmesi gerekir. Bunu yapmak için kullanıcı tarafından atanan yönetilen kimliği kullanır. Aşağıdaki komutu kullanarak yönetilen kimliği oluşturun:
export APPGW_IDENTITY_NAME='name-for-appgw-managed-identity'
az identity create \
--resource-group $RESOURCE_GROUP \
--name $APPGW_IDENTITY_NAME
Ardından, daha sonra Key Vault'ta sertifikaya erişim hakları vermek için kullanılacağından yönetilen kimliğin objectId değerini getirin:
export APPGW_IDENTITY_CLIENTID=$(az identity show \
--resource-group $RESOURCE_GROUP \
--name $APPGW_IDENTITY_NAME \
--query clientId \
--output tsv)
export APPGW_IDENTITY_OID=$(az ad sp show \
--id $APPGW_IDENTITY_CLIENTID \
--query objectId \
--output tsv)
Key Vault'ta ilke ayarlama
Application Gateway'in yönetilen kimliğinin Key Vault'ta depolanan sertifikaya erişmesine izin vermek için aşağıdaki komutu kullanarak Key Vault'ı yapılandırın:
az keyvault set-policy \
--name $KV_NAME \
--resource-group $KV_RG \
--object-id $APPGW_IDENTITY_OID \
--secret-permissions get list \
--certificate-permissions get list
Application Gateway oluşturma
az network application-gateway create kullanarak bir uygulama ağ geçidi oluşturun ve arka uç havuzunda sunucular olarak uygulamanızın özel, tam etki alanı adını (FQDN) belirtin. Kullanıcı tarafından atanan yönetilen kimliği kullandığınızdan ve sertifikanın Gizli Kimlik ID'sini kullanarak Key Vault'taki sertifikaya yönlendirdiğinizden emin olun. Ardından genel ana bilgisayar adını kullanmak için kullanarak az network application-gateway http-settings update HTTP ayarını güncelleştirin.
export APPGW_NAME='name-for-application-gateway'
export KEYVAULT_SECRET_ID_FOR_CERT=$(az keyvault certificate show \
--name $CERT_NAME_IN_KEY_VAULT \
--vault-name $KV_NAME \
--query sid \
--output tsv)
az network application-gateway create \
--name $APPGW_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--capacity 2 \
--sku Standard_v2 \
--frontend-port 443 \
--http-settings-cookie-based-affinity Disabled \
--http-settings-port 443 \
--http-settings-protocol Https \
--public-ip-address $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--vnet-name $VIRTUAL_NETWORK_NAME \
--subnet $APPLICATION_GATEWAY_SUBNET_NAME \
--servers $SPRING_APP_PRIVATE_FQDN \
--key-vault-secret-id $KEYVAULT_SECRET_ID_FOR_CERT \
--identity $APPGW_IDENTITY_NAME
Azure'ın uygulama ağ geçidini oluşturması 30 dakika kadar sürebilir.
HTTP Ayarlarını, etki alanı adını arka uçta kullanacak şekilde güncelleştirin
Azure Spring Apps'e trafik göndermek için, ".private.azuremicroservices.io" ile biten etki alanı yerine, genel etki alanı adını ana bilgisayar adı olarak kullanacak şekilde HTTP ayarlarını güncelleyin.
az network application-gateway http-settings update \
--resource-group $RESOURCE_GROUP \
--gateway-name $APPGW_NAME \
--host-name-from-backend-pool false \
--host-name $DOMAIN_NAME \
--name appGatewayBackendHttpSettings
Application Gateway dağıtımını denetleme
Oluşturulduktan sonra aşağıdaki komutu kullanarak arka uç durumunu denetleyin. Bu komutun çıkışı, uygulama ağ geçidinin özel FQDN'siyle uygulamanıza ulaşıp ulaşmadığını belirlemenizi sağlar.
az network application-gateway show-backend-health \
--name $APPGW_NAME \
--resource-group $RESOURCE_GROUP
Çıkış, aşağıdaki örnekte gösterildiği gibi arka uç havuzunun sağlıklı durumda olduğunu gösterir.
{
"backendAddressPools": [
{
"backendHttpSettingsCollection": [
{
"servers": [
{
"address": "my-azure-spring-apps-hello-vnet.private.azuremicroservices.io",
"health": "Healthy",
"healthProbeLog": "Success. Received 200 status code",
"ipConfiguration": null
}
]
}
]
}
]
}
DNS'yi yapılandırma ve uygulamaya erişme
Şimdi genel DNS'yi CNAME veya A kaydı kullanarak Application Gateway'e işaret eden şekilde yapılandırın. Aşağıdaki komutu kullanarak Application Gateway'in genel adresini bulabilirsiniz:
az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--query [ipAddress] \
--output tsv
Artık genel etki alanı adını kullanarak uygulamaya erişebilirsiniz.