Öğretici: Azure Uygulaması Hizmetinde güvenli bir n katmanlı uygulama oluşturma
Birçok uygulamanın tek bir bileşenden fazlası vardır. Örneğin, genel olarak erişilebilen ve bir arka uç API'sine veya web uygulamasına bağlanan ve bir veritabanına, depolama hesabına, anahtar kasasına, başka bir VM'ye veya bu kaynakların bir bileşimine bağlanan bir ön ucunuz olabilir. Bu mimari N katmanlı bir uygulamayı oluşturur. Bunun gibi uygulamaların arka uç kaynaklarını mümkün olan en büyük ölçüde korumak için tasarlanmış olması önemlidir.
Bu öğreticide, ağdan yalıtılmış başka bir web uygulamasına bağlanan bir ön uç web uygulamasıyla güvenli bir N katmanlı uygulama dağıtmayı öğreneceksiniz. Sanal Ağ tümleştirmesi ve özel uç noktalar kullanılarak tüm trafik Azure Sanal Ağ içinde yalıtılır. Diğer senaryoları içeren daha kapsamlı yönergeler için bkz:
Senaryo mimarisi
Aşağıdaki diyagramda, bu öğretici sırasında oluşturacağınız mimari gösterilmektedir.
- Sanal ağ biri ön uç web uygulamasıyla tümleştirilmiş, diğeri ise arka uç web uygulaması için özel bir uç noktaya sahip olmak üzere iki alt ağ içerir. Sanal ağ, tümleştirilmiş ön uç uygulaması dışında tüm gelen ağ trafiğini engeller.
- Ön uç web uygulaması Sanal ağa tümleşik ve genel İnternet'ten erişilebilir.
- Arka uç web uygulaması Yalnızca sanal ağdaki özel uç nokta üzerinden erişilebilir.
- Özel uç nokta Arka uç web uygulamasıyla tümleşir ve web uygulamasını özel bir IP adresiyle erişilebilir hale getirir.
- Özel DNS bölgesi Bir DNS adını özel uç noktanın IP adresine çözümlemenize olanak tanır.
Not
Sanal ağ tümleştirmesi ve özel uç noktalar, App Service'teki Temel katmana kadar tüm kullanılabilir. Ücretsiz katmanı bu özellikleri desteklemez. Bu mimariyle:
- Arka uç uygulamasına yönelik genel trafik engellenir.
- App Service'ten giden trafik sanal ağa yönlendirilir ve arka uç uygulamasına ulaşabilir.
- App Service arka uç uygulaması için DNS çözümlemesi gerçekleştirebilir.
Bu senaryo, App Service'teki olası N katmanlı senaryolardan birini gösterir. Daha karmaşık N katmanlı uygulamalar oluşturmak için bu öğreticide ele alınan kavramları kullanabilirsiniz.
Öğrenecekleriniz:
- App Service sanal ağ tümleştirmesi için bir sanal ağ ve alt ağlar oluşturun.
- Özel DNS bölgeleri oluşturun.
- Özel uç noktalar oluşturun.
- App Service'te sanal ağ tümleştirmesini yapılandırın.
- App Service'te temel kimlik doğrulamasını devre dışı bırakın.
- Kilitli bir arka uç web uygulamasına sürekli dağıtın.
Önkoşullar
Öğreticide GitHub'da barındırılan iki örnek Node.js uygulaması kullanılır. Henüz bir GitHub hesabınız yoksa ücretsiz olarak bir hesap oluşturun.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Bu öğreticiyi tamamlamak için:
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
1. Web uygulamasının iki örneğini oluşturma
Bir web uygulamasının biri ön uç, diğeri de arka uç için olmak üzere iki örneğine ihtiyacınız vardır. Sanal ağ tümleştirmesi ve özel uç noktaları kullanmak için en azından Temel katmanı kullanmanız gerekir. Daha sonra sanal ağ tümleştirmesini ve diğer yapılandırmaları yapılandıracaksınız.
Bu öğreticide oluşturduğunuz tüm kaynakları yönetmek için bir kaynak grubu oluşturun.
# Save resource group name and region as variables for convenience groupName=myresourcegroup region=eastus az group create --name $groupName --location $region
App Service planı oluşturun.
<app-service-plan-name>
yerine benzersiz bir ad yazın.--sku
Farklı bir SKU kullanmanız gerekiyorsa parametresini değiştirin. SKU gerekli ağ özelliklerini desteklemediğinden ücretsiz katmanı kullanmadığınızdan emin olun.# Save App Service plan name as a variable for convenience aspName=<app-service-plan-name> az appservice plan create --name $aspName --resource-group $groupName --is-linux --location $region --sku P1V3
Web uygulamalarını oluşturun. ve değerini genel olarak benzersiz iki adla değiştirin
<frontend-app-name>
(geçerli karakterler ,0-9
a-z
ve-
).<backend-app-name>
Bu öğreticide size örnek Node.js uygulamaları sağlanır. Kendi uygulamalarınızı kullanmak istiyorsanız parametresini--runtime
buna göre değiştirin. Kullanılabilir çalışma zamanlarının listesi için komutunu çalıştırınaz webapp list-runtimes
.az webapp create --name <frontend-app-name> --resource-group $groupName --plan $aspName --runtime "NODE:18-lts" az webapp create --name <backend-app-name> --resource-group $groupName --plan $aspName --runtime "NODE:18-lts"
2. Ağ altyapısı oluşturma
Aşağıdaki ağ kaynaklarını oluşturacaksınız:
- Bir sanal ağ.
- App Service sanal ağ tümleştirmesi için bir alt ağ.
- Özel uç nokta için bir alt ağ.
- Özel bir DNS bölgesi.
- Özel uç nokta.
Özel ağ oluşturun.
<virtual-network-name>
yerine benzersiz bir ad yazın.# Save vnet name as variable for convenience vnetName=<virtual-network-name> az network vnet create --resource-group $groupName --location $region --name $vnetName --address-prefixes 10.0.0.0/16
App Service sanal ağ tümleştirmesi için bir alt ağ oluşturun.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name vnet-integration-subnet --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms --disable-private-endpoint-network-policies false
App Service için sanal ağ tümleştirme alt ağının en az CIDR bloğuna
/26
sahip olması önerilir./24
fazla yeterlidir.--delegations Microsoft.Web/serverfarms
Alt ağın App Service sanal ağ tümleştirmesi için temsilci olarak atandığını belirtir.Özel uç noktalar için başka bir alt ağ oluşturun.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name private-endpoint-subnet --address-prefixes 10.0.1.0/24 --disable-private-endpoint-network-policies true
Özel uç nokta alt ağları için olarak ayarlayarak
--disable-private-endpoint-network-policies
true
özel uç nokta ağ ilkelerini devre dışı bırakmanız gerekir.Özel DNS bölgesini oluşturun.
az network private-dns zone create --resource-group $groupName --name privatelink.azurewebsites.net
Bu ayarlar hakkında daha fazla bilgi için bkz . Azure Özel Uç Nokta DNS yapılandırması.
Not
Portalı kullanarak özel uç nokta oluşturursanız, sizin için otomatik olarak bir özel DNS bölgesi oluşturulur ve bunu ayrı olarak oluşturmanız gerekmez. Bu öğreticiyle tutarlılık sağlamak için Azure CLI kullanarak özel DNS bölgesini ve özel uç noktayı ayrı ayrı oluşturursunuz.
Özel DNS bölgesini sanal ağa bağlayın.
az network private-dns link vnet create --resource-group $groupName --name myDnsLink --zone-name privatelink.azurewebsites.net --virtual-network $vnetName --registration-enabled False
Sanal ağınızın özel uç nokta alt ağında arka uç web uygulamanız için özel bir uç nokta oluşturun. değerini arka uç web uygulaması adınızla değiştirin
<backend-app-name>
.# Get backend web app resource ID resourceId=$(az webapp show --resource-group $groupName --name <backend-app-name> --query id --output tsv) az network private-endpoint create --resource-group $groupName --name myPrivateEndpoint --location $region --connection-name myConnection --private-connection-resource-id $resourceId --group-id sites --vnet-name $vnetName --subnet private-endpoint-subnet
Özel uç noktayı, arka uç web uygulaması özel uç noktası için bir DNS bölge grubuyla özel DNS bölgesine bağlayın. Bu DNS bölgesi grubu, özel uç noktada bir güncelleştirme olduğunda özel DNS Bölgesini otomatik olarak güncelleştirmenize yardımcı olur.
az network private-endpoint dns-zone-group create --resource-group $groupName --endpoint-name myPrivateEndpoint --name myZoneGroup --private-dns-zone privatelink.azurewebsites.net --zone-name privatelink.azurewebsites.net
App Service için özel uç nokta oluşturduğunuzda, genel erişim örtük olarak devre dışı bırakılır. Arka uç web uygulamanıza varsayılan URL'sini kullanarak erişmeye çalışırsanız erişiminiz reddedilir. Bir tarayıcıdan bu davranışı onaylamak için adresine gidin
<backend-app-name>.azurewebsites.net
.Özel uç noktaları olan App Service erişim kısıtlamaları hakkında daha fazla bilgi için bkz. hizmet erişim kısıtlamaları Azure Uygulaması.
3. Ön uç web uygulamanızda sanal ağ tümleştirmesini yapılandırma
Uygulamanızda sanal ağ tümleştirmesini etkinleştirin. yerine <frontend-app-name>
ön uç web uygulamasının adını yazın.
az webapp vnet-integration add --resource-group $groupName --name <frontend-app-name> --vnet $vnetName --subnet vnet-integration-subnet
Sanal ağ tümleştirmesi, giden trafiğin doğrudan sanal ağa akmasını sağlar. Varsayılan olarak, yalnızca RFC-1918'de tanımlanan yerel IP trafiği, özel uç noktalar için ihtiyacınız olan sanal ağa yönlendirilir. Tüm trafiğinizi sanal ağa yönlendirmek için bkz . Sanal ağ tümleştirme yönlendirmesini yönetme. İnternet trafiğini azure Sanal Ağ NAT veya Azure Güvenlik Duvarı gibi sanal ağınız üzerinden yönlendirmek istiyorsanız tüm trafiği yönlendirmek de kullanılabilir.
4. İnternet'ten arka uç web uygulamasına dağıtımı etkinleştirme
Arka uç web uygulamanız genel olarak erişilebilir olmadığından, SCM sitesini herkese açık hale getirerek sürekli dağıtım aracınızın uygulamanıza erişmesine izin vermelisiniz. Ana web uygulamasının kendisi tüm trafiği reddetmeye devam edebilir.
Arka uç web uygulaması için genel erişimi etkinleştirin.
az webapp update --resource-group $groupName --name <backend-app-name> --set publicNetworkAccess=Enabled
Ana web uygulamasının eşleşmeyen kural eylemini tüm trafiği reddedecek şekilde ayarlayın. Genel uygulama erişimi ayarı genel erişime izin verecek şekilde ayarlanmış olsa bile bu ayar ana web uygulamasına genel erişimi reddeder.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Deny
SCM sitesinin eşleşmeyen kural eylemini tüm trafiğe izin verecek şekilde ayarlayın.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
5. FTP ve SCM erişimini kilitleme
Artık arka uç SCM sitesine genel erişim sağlandığından, siteyi daha iyi bir güvenlikle kilitlemeniz gerekir.
Hem ön uç hem de arka uç web uygulamaları için FTP erişimini devre dışı bırakın. ve
<backend-app-name>
değerini uygulama adlarınızla değiştirin<frontend-app-name>
.az resource update --resource-group $groupName --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $groupName --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Her iki web uygulaması için de WebDeploy bağlantı noktalarına ve SCM/gelişmiş araç sitelerine temel kimlik doğrulaması erişimini devre dışı bırakın. ve
<backend-app-name>
değerini uygulama adlarınızla değiştirin<frontend-app-name>
.az resource update --resource-group $groupName --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $groupName --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
App Service'te temel kimlik doğrulamasının devre dışı bırakılması, FTP ve SCM uç noktalarına erişimi Microsoft Entra Id tarafından yedeklenen kullanıcılarla sınırlar ve bu da uygulamalarınızın güvenliğini daha da sağlar. Oturum açma bilgilerini test etme ve izleme de dahil olmak üzere temel kimlik doğrulamasını devre dışı bırakma hakkında daha fazla bilgi için bkz . App Service'te temel kimlik doğrulamasını devre dışı bırakma.
6. GitHub Actions kullanarak sürekli dağıtımı yapılandırma
Node.js arka uç örnek uygulamasına gidin. Bu uygulama basit bir Merhaba Dünya uygulamasıdır.
GitHub sayfasının sağ üst kısmındaki Çatal düğmesini seçin.
Sahip'i seçin ve varsayılan Depo adını bırakın.
Çatal oluştur'u seçin.
Node.js ön uç örnek uygulaması için aynı işlemi yineleyin. Bu uygulama, uzak URL'ye erişen temel bir web uygulamasıdır.
Hizmet sorumlusu oluşturma. ,
<frontend-app-name>
ve<backend-app-name>
değerlerini değerlerinizle değiştirin<subscription-id>
.az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/$groupName/providers/Microsoft.Web/sites/<frontend-app-name> /subscriptions/<subscription-id>/resourceGroups/$groupName/providers/Microsoft.Web/sites/<backend-app-name> --sdk-auth
Çıkış, App Service uygulamalarınıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir. Sonraki adım için bu JSON nesnesini kopyalayın. Bu, şu anda yalnızca görünür olan istemci gizli dizinizi içerir. Minimum erişim vermek her zaman iyi bir uygulamadır. Bu örnekteki kapsam, kaynak grubunun tamamıyla değil yalnızca uygulamalarla sınırlıdır.
Hizmet sorumlusunun kimlik bilgilerini GitHub gizli dizileri olarak depolamak için GitHub'daki çatallanmış örnek depolardan birine gidin ve Ayarlar>Güvenlik>Gizli Dizileri>ve değişkenler Eylemleri'ne gidin.
Yeni depo gizli dizisi'ni seçin ve aşağıdaki değerlerin her biri için bir gizli dizi oluşturun. Değerler, daha önce kopyaladığınız json çıkışında bulunabilir.
Veri Akışı Adı Değer AZURE_APP_ID <application/client-id>
AZURE_PASSWORD <client-secret>
AZURE_TENANT_ID <tenant-id>
AZURE_SUBSCRIPTION_ID <subscription-id>
Bu işlemi diğer çatallanmış örnek depo için yineleyin.
GitHub Actions ile sürekli dağıtım ayarlamak için Azure portalında oturum açın.
Ön uç web uygulamanızın Genel Bakış sayfasına gidin.
Sol bölmede Dağıtım Merkezi'ni seçin. Ardından Ayarlar'ı seçin.
Kaynak kutusunda CI/CD seçeneklerinden "GitHub" öğesini seçin.
GitHub'dan ilk kez dağıtıyorsanız Yetkile'yi seçin ve yetkilendirme istemlerini izleyin. Farklı bir kullanıcının deposundan dağıtmak istiyorsanız Hesabı Değiştir'i seçin.
Önkoşulların bir parçası olarak çatallanan Node.js örnek uygulamasını kullanıyorsanız Kuruluş, Depo ve Dal için aşağıdaki ayarları kullanın.
Ayar Value Kuruluş <your-GitHub-organization>
Depo nodejs-frontend Şube main Kaydet'i seçin.
Arka uç web uygulamanız için aynı adımları yineleyin. Dağıtım Merkezi ayarları aşağıdaki tabloda verilmiştir.
Ayar Value Kuruluş <your-GitHub-organization>
Depo nodejs-backend Şube main
7. GitHub Actions dağıtımı için hizmet sorumlusu kullanın
Dağıtım Merkezi yapılandırmanız örnek depolarınızın her birinde varsayılan bir iş akışı dosyası oluşturmuştur, ancak varsayılan olarak temel kimlik doğrulaması kullanan bir yayımlama profili kullanır. Temel kimlik doğrulamasını devre dışı bırakdığınızdan, Dağıtım Merkezi'ndeki Günlükler sekmesini denetlerseniz, otomatik olarak tetiklenen dağıtımın bir hatayla sonuçlandığını görürsünüz. App Service ile kimlik doğrulaması yapmak için hizmet sorumlusunu kullanmak için iş akışı dosyasını değiştirmeniz gerekir. Örnek iş akışları için bkz . İş akışı dosyasını GitHub deponuza ekleme.
Çatallanmış GitHub depolarınızdan birini açın ve dizine
<repo-name>/.github/workflows/
gidin.Otomatik olarak oluşturulan iş akışı dosyasını seçin ve ardından sağ üstteki "kalem" düğmesini seçerek dosyayı düzenleyin. İçeriği, daha önce kimlik bilgileriniz için GitHub gizli dizilerini oluşturduğunuzu varsayan aşağıdaki metinle değiştirin. "env" bölümünün altındaki için yer tutucuyu
<web-app-name>
güncelleştirin ve ardından doğrudan ana dala işleyin. Bu işleme, github eyleminin yeniden çalıştırılmasını ve kodunuzun dağıtılması için tetikler ve bu kez kimlik doğrulaması için hizmet sorumlusunu kullanır.name: Build and deploy Node.js app to Azure Web App on: push: branches: - main workflow_dispatch: env: AZURE_WEBAPP_NAME: <web-app-name> # set this to your application's name NODE_VERSION: '18.x' # set this to the node version to use AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Node.js version uses: actions/setup-node@v1 with: node-version: ${{ env.NODE_VERSION }} - name: npm install, build run: | npm install npm run build --if-present - name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: node-app path: . deploy: runs-on: ubuntu-latest needs: build environment: url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: Download artifact from build job uses: actions/download-artifact@v2 with: name: node-app - uses: azure/login@v1 with: creds: | { "clientId": "${{ secrets.AZURE_APP_ID }}", "clientSecret": "${{ secrets.AZURE_PASSWORD }}", "subscriptionId": "${{ secrets.AZURE_SUBSCRIPTION_ID }}", "tenantId": "${{ secrets.AZURE_TENANT_ID }}" } - name: 'Deploy to Azure Web App' id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - name: logout run: | az logout
Diğer çatallanmış GitHub deponuzdaki iş akışı dosyası için bu işlemi yineleyin.
Yeni GitHub işlemeleri, uygulamalarınızın her biri için başka bir dağıtım tetikler. İş akışı uygulamaların SCM sitelerinde kimlik doğrulaması yapmak için hizmet sorumlusunu kullandığından bu kez dağıtım başarılı olmalıdır.
GitHub Actions gibi sağlayıcılarla sürekli dağıtımı yapılandırma hakkında ayrıntılı yönergeler için bkz. Azure Uygulaması Service'e sürekli dağıtım.
8. Bağlantıları ve uygulama erişimini doğrulama
URL'si ile ön uç web uygulamasına göz atın:
https://<frontend-app-name>.azurewebsites.net
.Metin kutusuna arka uç web uygulamanızın URL'sini girin:
https://<backend-app-name>.azurewebsites.net
. Bağlantıları düzgün ayarlarsanız, arka uç web uygulamasının tüm içeriği olan "Arka uç web uygulamasından merhaba!" iletisini almanız gerekir. Ön uç web uygulamasından gelen tüm giden trafik sanal ağ üzerinden yönlendirilir. Ön uç web uygulamanız, özel uç nokta üzerinden arka uç web uygulamanıza güvenli bir şekilde bağlanıyor. Bağlantılarınızda bir sorun varsa ön uç web uygulamanız kilitlenir.URL'si ile doğrudan arka uç web uygulamanıza gezinmeyi deneyin:
https://<backend-app-name>.azurewebsites.net
. iletisiniWeb App - Unavailable
görmeniz gerekir. Uygulamaya ulaşabiliyorsanız özel uç noktayı yapılandırdığınızdan ve uygulamanız için erişim kısıtlamalarının ana web uygulaması için tüm trafiği reddedecek şekilde ayarlandığından emin olun.Ön uç web uygulamasının özel bağlantı üzerinden arka uç web uygulamasına ulaştığını daha fazla doğrulamak için ön ucunuzun örneklerinden birine SSH ekleyin. SSH'ye, uygulamanızın web kapsayıcısında bir SSH oturumu oluşturan ve tarayıcınızda bir uzak kabuk açan aşağıdaki komutu çalıştırın.
az webapp ssh --resource-group $groupName --name <frontend-app-name>
Kabuk tarayıcınızda açıldığında, arka uç web uygulamanızın özel IP'sini kullanarak arka uç web uygulamanıza ulaşıldığını onaylamak için komutunu çalıştırın
nslookup
. Site içeriğini yeniden doğrulamak için komutunu da çalıştırabilirsinizcurl
. değerini arka uç web uygulaması adınızla değiştirin<backend-app-name>
.nslookup <backend-app-name>.azurewebsites.net curl https://<backend-app-name>.azurewebsites.net
,
nslookup
arka uç web uygulamanızın özel IP adresine çözümlenmelidir. Özel IP adresi, sanal ağınızdaki bir adres olmalıdır. Özel IP'nizi onaylamak için arka uç web uygulamanızın Ağ sayfasına gidin.Aynı
nslookup
vecurl
komutlarını başka bir terminalden (ön ucunuzun örneklerinde SSH oturumu olmayan bir terminal) yineleyin.,
nslookup
arka uç web uygulamasının genel IP'sini döndürür. Arka uç web uygulamasına genel erişim devre dışı bırakıldığından, genel IP'ye erişmeye çalışırsanız erişim reddedildi hatası alırsınız. Bu hata, bu sitenin hedeflenen davranış olan genel İnternet'ten erişilebildiği anlamına gelir.nslookup
yalnızca özel DNS bölgesi aracılığıyla sanal ağ içinden çözümlenebildiği için özel IP'ye çözümlenmez. Sanal ağda yalnızca ön uç web uygulaması bulunur. Dış terminalden arka uç web uygulamasında çalıştırmayıcurl
denerseniz, döndürülen HTML içerirWeb App - Unavailable
. Bu hata, tarayıcınızda arka uç web uygulamasına gezinmeyi denediğinizde daha önce gördüğünüz hata sayfasının HTML'sini görüntüler.
9. Kaynakları temizleme
Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Bu kaynakların gelecekte gerekli olacağını düşünmüyorsanız, Cloud Shell’de aşağıdaki komutu çalıştırarak kaynak grubunu silin.
az group delete --name myresourcegroup
Bu komutun çalıştırılması birkaç dakika sürebilir.
Sık sorulan sorular
- Hizmet sorumlusu kullanarak dağıtımın alternatifi var mı?
- App Service'te GitHub Actions dağıtımını yapılandırdığımda ne olur?
- Arka uç SCM'sini genel olarak erişilebilir durumda bırakmak güvenli mi?
- Arka uç SCM sitesini açmadan dağıtmanın bir yolu var mı?
- ARM/Bicep ile bu mimariyi nasıl dağıtabilirim?
Hizmet sorumlusu kullanarak dağıtımın alternatifi var mı?
Bu öğreticide temel kimlik doğrulamasını devre dışı bırakdığınızdan, arka uç SCM sitesinde kullanıcı adı ve parolayla kimlik doğrulaması yapamazsınız ve yayımlama profiliyle de kimlik doğrulaması yapamazsınız. Hizmet sorumlusu yerine OpenID Connect de kullanabilirsiniz.
App Service'te GitHub Actions dağıtımını yapılandırdığımda ne olur?
Azure, deponuzda bir iş akışı dosyasını otomatik olarak oluşturur. Seçili depodaki ve daldaki yeni işlemeler artık App Service uygulamanıza sürekli olarak dağıtılır. İşlemeleri ve dağıtımları Günlükler sekmesinden izleyebilirsiniz.
App Service'de kimlik doğrulaması yapmak için yayımlama profili kullanan varsayılan iş akışı dosyası GitHub deponuza eklenir. Dizine <repo-name>/.github/workflows/
giderek bu dosyayı görüntüleyebilirsiniz.
Arka uç SCM'sini genel olarak erişilebilir durumda bırakmak güvenli mi?
FTP ve SCM erişimini kilitlediğinizde, genel erişime açık olsa bile SCM uç noktasına yalnızca Microsoft Entra destekli sorumluların erişebilmesini sağlar. Bu ayar arka uç web uygulamanızın hala güvenli olduğundan emin olmanız gerekir.
Arka uç SCM sitesini açmadan dağıtmanın bir yolu var mı?
SCM sitesine genel erişimi etkinleştirme konusunda endişeleniyorsanız veya ilke tarafından kısıtlandıysanız, ZIP paketinden çalıştırma gibi diğer App Service dağıtım seçeneklerini göz önünde bulundurun.
ARM/Bicep ile bu mimariyi nasıl dağıtabilirim?
Bu öğreticide oluşturduğunuz kaynaklar ARM/Bicep şablonu kullanılarak dağıtılabilir. Arka uç web uygulamasına bağlı Uygulama Bicep şablonu, güvenli bir N katmanlı uygulama çözümü oluşturmanıza olanak tanır.
ARM/Bicep şablonlarını dağıtmayı öğrenmek için bkz . Bicep ve Azure CLI ile kaynakları dağıtma.