Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Plán Standardní spotřeba a vyhrazený plán vstoupily do fáze vyřazování dne 30. září 2024 s úplným vypnutím do konce března 2025. Další informace najdete v části Migrace úrovně spotřeby a vyhrazeného plánu Azure Spring Apps – Standard na Azure Container Apps.
Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise
Tento článek vysvětluje, jak zpřístupnit aplikace na internetu pomocí služby Application Gateway. Když je instance služby Azure Spring Apps nasazená ve vaší virtuální síti, aplikace v instanci služby jsou přístupné jenom v privátní síti. Pokud chcete, aby aplikace byly přístupné na internetu, je potřeba integrovat s Azure Application Gateway.
Požadavky
- Azure CLI verze 2.0.4 nebo novější.
- Instance služby Azure Spring Apps nasazená ve virtuální síti s aplikací přístupnou přes privátní síť s použitím výchozí
.private.azuremicroservices.io
přípony domény. Další informace najdete v tématu Nasazení služby Azure Spring Apps ve virtuální síti. - Vlastní doména, která se má použít pro přístup k aplikaci.
- Certifikát uložený ve službě Key Vault, který odpovídá vlastní doméně, jež se má použít k navázání posluchače HTTPS. Další informace najdete v tématu Kurz: Import certifikátu ve službě Azure Key Vault.
Konfigurace služby Application Gateway pro Azure Spring Apps
Doporučujeme, aby název domény, jak je vidět v prohlížeči, byl stejný jako název hostitele, který Application Gateway používá k směrování provozu do back-endu Azure Spring Apps. Toto doporučení poskytuje nejlepší prostředí při používání služby Application Gateway ke zveřejnění aplikací hostovaných v Azure Spring Apps a umístění ve virtuální síti. Pokud se doména vystavená službou Application Gateway liší od domény přijaté službou Azure Spring Apps, soubory cookie a vygenerované adresy URL pro přesměrování (například) můžou být přerušené. Další informace naleznete v tématu Zachování názvu hostitele.
Pokud chcete službu Application Gateway nakonfigurovat před azure Spring Apps, postupujte následovně.
- Postupujte podle pokynů v tématu Nasazení azure Spring Apps ve virtuální síti.
- Postupujte podle pokynů v části Přístup k vaší aplikaci v soukromé síti.
- Získejte certifikát pro zvolenou doménu a uložte ho ve službě Key Vault. Další informace najdete v tématu Kurz: Import certifikátu ve službě Azure Key Vault.
- Nakonfigurujte vlastní doménu a odpovídající certifikát ze služby Key Vault v aplikaci nasazené do Azure Spring Apps. Další informace najdete v tématu Kurz: Mapování existující vlastní domény na Azure Spring Apps.
- Nasaďte službu Application Gateway ve virtuální síti nakonfigurované podle následujícího seznamu:
- Použijte Azure Spring Apps v back-endovém fondu, na který odkazuje doména s příponou
private.azuremicroservices.io
. - Zahrňte HTTPS listener, který používá stejný certifikát z Key Vaultu.
- Nakonfigurujte virtuální síť s nastavením HTTP, která používají vlastní název domény nakonfigurovaný v Azure Spring Apps místo domény s příponou
private.azuremicroservices.io
.
- Použijte Azure Spring Apps v back-endovém fondu, na který odkazuje doména s příponou
- Nakonfigurujte veřejný DNS tak, aby odkazovali na Službu Application Gateway.
Definování proměnných
Dále pomocí následujících příkazů definujte proměnné pro skupinu prostředků a virtuální síť, kterou jste vytvořili podle pokynů v nasazení Azure Spring Apps ve virtuální síti. Přizpůsobte hodnoty na základě skutečného prostředí. Při definování SPRING_APP_PRIVATE_FQDN
odeberte https://
z identifikátoru URI.
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'
Přihlášení k Azure
Pomocí následujícího příkazu se přihlaste k Azure CLI a zvolte aktivní předplatné.
az login
az account set --subscription $SUBSCRIPTION
Získání certifikátu
Pro produkční nasazení budete pravděpodobně používat veřejně podepsaný certifikát. V tomto případě importujte certifikát do služby Azure Key Vault. Další informace najdete v tématu Kurz: Import certifikátu ve službě Azure Key Vault. Ujistěte se, že certifikát obsahuje celý řetěz certifikátů.
Konfigurace názvu veřejné domény v Azure Spring Apps
Provoz bude směrován do aplikace nasazené v Azure Spring Apps pomocí názvu veřejné domény. Pokud chcete aplikaci nakonfigurovat tak, aby naslouchala tomuto názvu hostitele a aby to udělala přes HTTPS, přidejte do aplikace vlastní doménu pomocí následujících příkazů:
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
Vytvoření síťových prostředků
Brána aplikací Azure, která se má vytvořit, se připojí ke stejné virtuální síti nebo k partnerské virtuální síti, do které patří instance služby Azure Spring Apps. Nejprve vytvořte novou podsíť pro službu Application Gateway ve virtuální síti pomocí az network vnet subnet create
a také vytvořte veřejnou IP adresu jako front-end služby Application Gateway pomocí az network public-ip create
.
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
Vytvoření spravované identity pro Službu Application Gateway
Application Gateway bude muset mít přístup ke službě Key Vault, aby mohl číst certifikát. K tomu použije spravovanou identitu přiřazenou uživatelem. Spravovanou identitu vytvořte pomocí následujícího příkazu:
export APPGW_IDENTITY_NAME='name-for-appgw-managed-identity'
az identity create \
--resource-group $RESOURCE_GROUP \
--name $APPGW_IDENTITY_NAME
Potom načtěte ID objektu pro spravovanou identitu, protože se později použije k udělení oprávnění pro přístup k certifikátu ve službě Key Vault:
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)
Nastavení zásad ve službě Key Vault
Nakonfigurujte službu Key Vault pomocí následujícího příkazu, aby spravovaná identita služby Application Gateway byla povolena pro přístup k certifikátu uloženému ve službě Key Vault:
az keyvault set-policy \
--name $KV_NAME \
--resource-group $KV_RG \
--object-id $APPGW_IDENTITY_OID \
--secret-permissions get list \
--certificate-permissions get list
Vytvoření služby Application Gateway
Vytvořte aplikační bránu pomocí az network application-gateway create
a specifikujte privátní plně kvalifikovaný název domény (FQDN) vaší aplikace jako servery ve fondu serverů v backendu. Nezapomeňte použít spravovanou identitu přiřazenou uživatelem a odkazovat na certifikát ve službě Key Vault pomocí ID tajného klíče certifikátu. Potom aktualizujte nastavení HTTP tak az network application-gateway http-settings update
, aby používalo veřejný název hostitele.
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
Vytvoření aplikační brány azure může trvat až 30 minut.
Aktualizace nastavení HTTP tak, aby používala název domény pro backend.
Aktualizujte nastavení HTTP tak, aby používalo název veřejné domény jako název hostitele místo přípony domény s příponou .private.azuremicroservices.io, aby se provoz odesílal do Azure Spring Apps.
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
Kontrola nasazení služby Application Gateway
Po vytvoření zkontrolujte stav back-endu pomocí následujícího příkazu. Výstup tohoto příkazu vám umožní určit, zda aplikační brána dosáhne k vaší aplikaci pomocí jejího privátního FQDN (plně kvalifikovaného názvu domény).
az network application-gateway show-backend-health \
--name $APPGW_NAME \
--resource-group $RESOURCE_GROUP
Výstup ukazuje, že stav back-endové skupiny je v pořádku, jak je znázorněno v následujícím příkladu:
{
"backendAddressPools": [
{
"backendHttpSettingsCollection": [
{
"servers": [
{
"address": "my-azure-spring-apps-hello-vnet.private.azuremicroservices.io",
"health": "Healthy",
"healthProbeLog": "Success. Received 200 status code",
"ipConfiguration": null
}
]
}
]
}
]
}
Konfigurace DNS a přístup k aplikaci
Nyní nakonfigurujte veřejný DNS tak, aby odkazoval pomocí záznamu CNAME nebo A na Application Gateway. Veřejnou adresu služby Application Gateway najdete pomocí následujícího příkazu:
az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--query [ipAddress] \
--output tsv
Teď můžete k aplikaci přistupovat pomocí názvu veřejné domény.