Oktatóanyag: Biztonságos n szintű alkalmazás létrehozása Azure-alkalmazás Szolgáltatásban
Számos alkalmazás több összetevővel is rendelkezik. Előfordulhat például, hogy olyan előtérrel rendelkezik, amely nyilvánosan elérhető, és egy háttér API-hoz vagy webalkalmazáshoz csatlakozik, amely viszont egy adatbázishoz, tárfiókhoz, kulcstartóhoz, egy másik virtuális géphez vagy ezeknek az erőforrásoknak a kombinációjához csatlakozik. Ez az architektúra egy N szintű alkalmazást alkot. Fontos, hogy az ilyen alkalmazások a lehető legnagyobb mértékben védjék a háttérbeli erőforrásokat.
Ebben az oktatóanyagban megtudhatja, hogyan helyezhet üzembe egy biztonságos N szintű alkalmazást egy olyan előtér-webalkalmazással, amely egy másik hálózat által elkülönített webalkalmazáshoz csatlakozik. Az Azure-beli virtuális hálózaton belül minden forgalom el van különítve a virtuális hálózati integráció és a privát végpontok használatával. Az egyéb forgatókönyveket is tartalmazó átfogóbb útmutatásért lásd:
Forgatókönyv-architektúra
Az alábbi ábra az oktatóanyag során létrehozott architektúrát mutatja be.
- A virtuális hálózat két alhálózatot tartalmaz, az egyik integrálva van az előtérbeli webalkalmazással, a másik pedig egy privát végponttal a háttérbeli webalkalmazáshoz. A virtuális hálózat blokkolja az összes bejövő hálózati forgalmat, kivéve a vele integrált előtérbeli alkalmazást.
- A virtuális hálózatba integrált és a nyilvános internetről elérhető előtér-webalkalmazás .
- A háttérbeli webalkalmazás csak a virtuális hálózat privát végpontja segítségével érhető el.
- A privát végpont integrálva van a háttérbeli webalkalmazással, és a webalkalmazást egy privát IP-címmel teszi elérhetővé.
- saját DNS zóna Lehetővé teszi a DNS-név feloldását a privát végpont IP-címére.
Feljegyzés
A virtuális hálózati integráció és a privát végpontok egészen az App Service alapszintű szintjéig érhetők el. Az ingyenes szint nem támogatja ezeket a funkciókat. Ezzel az architektúrával:
- A háttéralkalmazás nyilvános forgalma le van tiltva.
- Az App Service kimenő forgalmát a rendszer a virtuális hálózatra irányítja, és elérheti a háttéralkalmazást.
- Az App Service képes DNS-feloldás elvégzésére a háttéralkalmazásban.
Ez a forgatókönyv az App Service egyik lehetséges N szintű forgatókönyvét mutatja be. Az oktatóanyagban ismertetett fogalmak segítségével összetettebb N szintű alkalmazásokat hozhat létre.
Ismertetett témák:
- Hozzon létre egy virtuális hálózatot és alhálózatokat az App Service virtuális hálózati integrációjához.
- Hozzon létre privát DNS-zónákat.
- Privát végpontok létrehozása.
- Virtuális hálózati integráció konfigurálása az App Service-ben.
- Tiltsa le az alapszintű hitelesítést az App Service-ben.
- Folyamatosan üzembe helyezhető egy zárolt háttérbeli webalkalmazásban.
Előfeltételek
Az oktatóanyag két Node.js gitHubon üzemeltetett mintaalkalmazást használ. Ha még nem rendelkezik GitHub-fiókkal, hozzon létre ingyenes fiókot.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Az oktatóanyag elvégzéséhez:
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
1. Webalkalmazás két példányának létrehozása
Egy webalkalmazás két példányára van szüksége, egyet az előtérben, egyet pedig a háttérrendszerhez. A virtuális hálózati integráció és a privát végpontok használatához legalább az Alapszintű szintet kell használnia. Később konfigurálja a virtuális hálózati integrációt és más konfigurációkat.
Hozzon létre egy erőforráscsoportot az oktatóanyagban létrehozott összes erőforrás kezeléséhez.
# Save resource group name and region as variables for convenience groupName=myresourcegroup region=eastus az group create --name $groupName --location $region
Hozzon létre egy App Service-csomagot. A
<app-service-plan-name>
sztringet cserélje le egy egyedi névre. Módosítsa a paramétert--sku
, ha másik termékváltozatot kell használnia. Győződjön meg arról, hogy nem használja az ingyenes szintet, mivel ez a termékváltozat nem támogatja a szükséges hálózati funkciókat.# 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
Hozza létre a webalkalmazásokat. Cserélje le és írja be
<frontend-app-name>
két globálisan egyedi névvel (az érvényes karakterek a következőka-z
: és0-9
-
).<backend-app-name>
Ebben az oktatóanyagban Node.js mintaalkalmazásokkal rendelkezik. Ha saját alkalmazásokat szeretne használni, ennek megfelelően módosítsa a--runtime
paramétert. Futtassaaz webapp list-runtimes
az elérhető futtatókörnyezetek listáját.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. Hálózati infrastruktúra létrehozása
A következő hálózati erőforrásokat fogja létrehozni:
- Egy virtuális hálózat.
- Az App Service virtuális hálózati integrációjának alhálózata.
- A privát végpont alhálózata.
- Privát DNS-zóna.
- Privát végpont.
Hozzon létre egy virtuális hálózatot. A
<virtual-network-name>
sztringet cserélje le egy egyedi névre.# 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
Hozzon létre egy alhálózatot az App Service virtuális hálózati integrációjához.
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
Az App Service esetében a virtuális hálózati integrációs alhálózatnak ajánlott legalább CIDR-blokktal rendelkeznie
/26
./24
több mint elegendő.--delegations Microsoft.Web/serverfarms
megadja, hogy az alhálózat delegálva legyen az App Service virtuális hálózati integrációjához.Hozzon létre egy másik alhálózatot a privát végpontokhoz.
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
A privát végpont alhálózatai esetében a privát végpont hálózati házirendjeinek letiltásához állítsa be
--disable-private-endpoint-network-policies
a következőttrue
: .Hozza létre a privát DNS-zónát.
az network private-dns zone create --resource-group $groupName --name privatelink.azurewebsites.net
További információ ezekről a beállításokról: Azure Private Endpoint DNS-konfiguráció.
Feljegyzés
Ha a privát végpontot a portál használatával hozza létre, a rendszer automatikusan létrehoz egy privát DNS-zónát, és nem kell külön létrehoznia. Az oktatóanyag konzisztenciája érdekében a privát DNS-zónát és a privát végpontot külön hozza létre az Azure CLI használatával.
Kapcsolja a saját DNS-zónát a virtuális hálózathoz.
az network private-dns link vnet create --resource-group $groupName --name myDnsLink --zone-name privatelink.azurewebsites.net --virtual-network $vnetName --registration-enabled False
A virtuális hálózat privát végpont alhálózatában hozzon létre egy privát végpontot a háttér-webalkalmazáshoz. Cserélje le
<backend-app-name>
a háttérbeli webalkalmazás nevére.# 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
Csatolja a privát végpontot a privát DNS-zónához a háttéralkalmazás privát végpontjának DNS-zónacsoportjával. Ez a DNS-zónacsoport segít automatikusan frissíteni a privát DNS-zónát a privát végpont frissítésekor.
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
Amikor privát végpontot hoz létre egy App Service-hez, a nyilvános hozzáférés implicit módon le lesz tiltva. Ha az alapértelmezett URL-címével próbálja elérni a háttérbeli webalkalmazást, a rendszer megtagadja a hozzáférést. A böngészőben keresse meg ezt a
<backend-app-name>.azurewebsites.net
viselkedést.Az App Service privát végpontokkal kapcsolatos hozzáférési korlátozásaival kapcsolatos további információkért lásd Azure-alkalmazás szolgáltatáshozzáférés korlátozásait.
3. Virtuális hálózati integráció konfigurálása az előtérbeli webalkalmazásban
Virtuális hálózati integráció engedélyezése az alkalmazásban. Cserélje le <frontend-app-name>
az előtér-webalkalmazás nevére.
az webapp vnet-integration add --resource-group $groupName --name <frontend-app-name> --vnet $vnetName --subnet vnet-integration-subnet
A virtuális hálózat integrációja lehetővé teszi, hogy a kimenő forgalom közvetlenül a virtuális hálózatba áramoljon. Alapértelmezés szerint csak az RFC-1918-ban definiált helyi IP-forgalom lesz átirányítva a virtuális hálózathoz, ami a privát végpontokhoz szükséges. Ha az összes forgalmat a virtuális hálózatra szeretné irányítani, olvassa el a Virtuális hálózatok integrációs útválasztásának kezelése című témakört. Az összes forgalom útválasztása akkor is használható, ha az internetes forgalmat a virtuális hálózaton keresztül szeretné irányítani, például egy Azure-beli virtuális hálózat NAT-án vagy egy Azure Firewallon keresztül.
4. Az üzembe helyezés engedélyezése a háttérbeli webalkalmazásban az internetről
Mivel a háttér-webalkalmazás nem érhető el nyilvánosan, engedélyeznie kell, hogy a folyamatos üzembe helyezési eszköz elérje az alkalmazást azáltal, hogy az SCM-webhelyet nyilvánosan elérhetővé teszi. Maga a fő webalkalmazás továbbra is megtagadhatja az összes forgalmat.
Nyilvános hozzáférés engedélyezése a háttérbeli webalkalmazáshoz.
az webapp update --resource-group $groupName --name <backend-app-name> --set publicNetworkAccess=Enabled
A fő webalkalmazás nem egyező szabályműveletének beállítása az összes forgalom letiltásához. Ez a beállítás nem engedélyezi a nyilvános hozzáférést a fő webalkalmazáshoz annak ellenére, hogy az általános alkalmazáshozzáférés beállítása a nyilvános hozzáférés engedélyezésére van beállítva.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Deny
Állítsa be az SCM-hely nem egyező szabályműveletét az összes forgalom engedélyezéséhez.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
5. FTP- és SCM-hozzáférés zárolása
Most, hogy a háttérrendszer SCM-webhelye nyilvánosan elérhető, jobb biztonsággal kell zárolnia.
Tiltsa le az FTP-hozzáférést mind az előtérbeli, mind a háttérbeli webalkalmazásokhoz. Cserélje le és
<backend-app-name>
írja be<frontend-app-name>
az alkalmazásneveket.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
Tiltsa le a WebDeploy-portokhoz és az SCM/speciális eszközwebhelyekhez való alapvető hitelesítési hozzáférést mindkét webalkalmazáshoz. Cserélje le és
<backend-app-name>
írja be<frontend-app-name>
az alkalmazásneveket.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
Az App Service alapszintű hitelesítésének letiltása korlátozza az FTP- és SCM-végpontok elérését a Microsoft Entra ID által támogatott felhasználók számára, ami tovább védi az alkalmazásokat. Az alapszintű hitelesítés letiltásáról, többek között a bejelentkezések teszteléséről és monitorozásáról további információt az App Service alapszintű hitelesítésének letiltása című témakörben talál.
6. Folyamatos üzembe helyezés konfigurálása a GitHub Actions használatával
Lépjen a Node.js háttéralkalmazásra. Ez az alkalmazás egy egyszerű „Helló világ!” alkalmazás alkalmazás.
A GitHub oldal jobb felső részén válassza az Elágazás gombot.
Válassza ki a tulajdonost, és hagyja meg az alapértelmezett adattárnevet.
Válassza az Elágazás létrehozása lehetőséget .
Ismételje meg ugyanezt a folyamatot az Node.js előtérbeli mintaalkalmazás esetében. Ez az alkalmazás egy egyszerű webalkalmazás, amely egy távoli URL-címet ér el.
Hozzon létre egy szolgáltatásnevet. Cserélje le és
<frontend-app-name>
<backend-app-name>
írja be<subscription-id>
az értékeket.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
A kimenet egy JSON-objektum, amelynek szerepkör-hozzárendelési hitelesítő adatai hozzáférést biztosítanak az App Service-alkalmazásokhoz. Másolja ezt a JSON-objektumot a következő lépéshez. Tartalmazza az ügyfél titkos kódját, amely jelenleg csak látható. Mindig ajánlott minimális hozzáférést biztosítani. A jelen példában szereplő hatókör csak az alkalmazásokra korlátozódik, nem pedig a teljes erőforráscsoportra.
A szolgáltatásnév hitelesítő adatainak GitHub-titkos kulcsként való tárolásához nyissa meg a GitHub egyik elágaztatott mintaadattárát, és lépjen a Beállítások>biztonsági>titkos kulcsok és változók>műveletek lapjára.
Válassza az Új tárház titkos kód lehetőséget, és hozzon létre egy titkos kulcsot az alábbi értékek mindegyikéhez. Az értékek a korábban másolt json-kimenetben találhatók.
Név szerint Érték AZURE_APP_ID <application/client-id>
AZURE_PASSWORD <client-secret>
AZURE_TENANT_ID <tenant-id>
AZURE_SUBSCRIPTION_ID <subscription-id>
Ismételje meg ezt a folyamatot a másik elágazott mintaadattár esetében.
Ha folyamatos üzembe helyezést szeretne beállítani a GitHub Actions használatával, jelentkezzen be az Azure Portalra.
Lépjen az előtér-webalkalmazás Áttekintés lapjára.
A bal oldali panelen válassza az Üzembe helyezési központ lehetőséget. Ezután válassza a Beállítások lehetőséget.
A Forrás mezőben válassza a "GitHub" lehetőséget a CI/CD beállításai közül.
Ha első alkalommal telepíti a GitHubot, válassza az Engedélyezés lehetőséget, és kövesse az engedélyezési utasításokat. Ha egy másik felhasználó adattárából szeretné üzembe helyezni az üzembe helyezést, válassza a Fiók módosítása lehetőséget.
Ha az előfeltételek részeként elágaztatott Node.js mintaalkalmazást használja, használja a következő beállításokat a Szervezet, az Adattár és az Ág esetében.
Beállítás Érték Organization <your-GitHub-organization>
Adattár nodejs-frontend Branch main Válassza a Mentés lehetőséget.
Ismételje meg ugyanazokat a lépéseket a háttér-webalkalmazás esetében. Az Üzembe helyezési központ beállításai az alábbi táblázatban találhatók.
Beállítás Érték Organization <your-GitHub-organization>
Adattár nodejs-backend Branch main
7. Szolgáltatásnév használata a GitHub Actions üzembe helyezéséhez
Az Üzembehelyezési központ konfigurációja létrehozott egy alapértelmezett munkafolyamat-fájlt az egyes mintaadattárakban, de alapértelmezés szerint egy közzétételi profilt használ, amely alapszintű hitelesítést használ. Mivel letiltotta az alapszintű hitelesítést, ha bejelöli a Naplók lapot az Üzembe helyezési központban, látni fogja, hogy az automatikusan aktivált üzembe helyezés hibát eredményez. Módosítania kell a munkafolyamat-fájlt, hogy a szolgáltatásnévvel hitelesítse magát az App Service-ben. A minta munkafolyamatokról a Munkafolyamat-fájl hozzáadása a GitHub-adattárban című témakörben olvashat.
Nyissa meg az egyik elágaztatott GitHub-adattárat, és nyissa meg a
<repo-name>/.github/workflows/
könyvtárat.Válassza ki az automatikusan létrehozott munkafolyamat-fájlt, majd a jobb felső sarokban lévő "ceruza" gombot a fájl szerkesztéséhez. Cserélje le a tartalmat a következő szövegre, amely feltételezi, hogy korábban létrehozta a GitHub titkos kulcsait a hitelesítő adatokhoz. Frissítse a helyőrzőt
<web-app-name>
az "env" szakaszban, majd véglegesítse közvetlenül a fő ágra. Ez a véglegesítés aktiválja a GitHub-műveletet, hogy újra fusson, és telepítse a kódot, ezúttal a szolgáltatásnév használatával a hitelesítéshez.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
Ismételje meg ezt a folyamatot a munkafolyamat-fájlhoz a másik elágaztatott GitHub-adattárban.
Az új GitHub-véglegesítések egy újabb üzembe helyezést váltanak ki az egyes alkalmazásokhoz. Az üzembe helyezésnek ezúttal sikeresnek kell lennie, mivel a munkafolyamat a szolgáltatásnév használatával hitelesíti az alkalmazás SCM-webhelyeit.
A folyamatos üzembe helyezés olyan szolgáltatókkal való konfigurálásához, mint a GitHub Actions, részletes útmutatásért lásd: Folyamatos üzembe helyezés Azure-alkalmazás szolgáltatásban.
8. Kapcsolatok és alkalmazáshozzáférés ellenőrzése
Keresse meg az előtérbeli webalkalmazást az URL-címével:
https://<frontend-app-name>.azurewebsites.net
.A szövegmezőbe írja be a háttérbeli webalkalmazás URL-címét:
https://<backend-app-name>.azurewebsites.net
. Ha megfelelően állítja be a kapcsolatokat, a "Hello from the backend web app!" üzenetet kell kapnia, amely a háttér webalkalmazás teljes tartalma. Az előtérbeli webalkalmazás kimenő forgalmát a rendszer a virtuális hálózaton keresztül irányítja át. Az előtérbeli webalkalmazás biztonságosan csatlakozik a háttérbeli webalkalmazáshoz a privát végponton keresztül. Ha valami baj van a kapcsolatokkal, az előtérbeli webalkalmazás összeomlik.Próbáljon meg közvetlenül navigálni a háttérbeli webalkalmazásra a következő URL-címmel:
https://<backend-app-name>.azurewebsites.net
. Ekkor megjelenik az üzenetWeb App - Unavailable
. Ha el tudja érni az alkalmazást, győződjön meg arról, hogy konfigurálta a privát végpontot, és hogy az alkalmazás hozzáférési korlátozásai a fő webalkalmazás összes forgalmának letiltására vannak beállítva.Annak ellenőrzéséhez, hogy az előtér-webalkalmazás privát hivatkozáson keresztül éri-e el a háttérbeli webalkalmazást, az SSH az előtér egyik példányára. Az SSH-hoz futtassa a következő parancsot, amely létrehoz egy SSH-munkamenetet az alkalmazás webtárolójában, és megnyit egy távoli rendszerhéjat a böngészőben.
az webapp ssh --resource-group $groupName --name <frontend-app-name>
Amikor megnyílik a rendszerhéj a böngészőben, futtassa
nslookup
a háttérbeli webalkalmazás elérését a háttér-webalkalmazás privát IP-címével. A webhely tartalmának ismételt ellenőrzéséhez is futtathatócurl
. Cserélje le<backend-app-name>
a háttérbeli webalkalmazás nevére.nslookup <backend-app-name>.azurewebsites.net curl https://<backend-app-name>.azurewebsites.net
A
nslookup
megoldásnak a háttérbeli webalkalmazás privát IP-címére kell feloldódnia. A magánhálózati IP-címnek a virtuális hálózatból származó címnek kell lennie. A privát IP-cím megerősítéséhez lépjen a háttérbeli webalkalmazás Hálózatkezelés lapjára.Ismételje meg ugyanezt
nslookup
, éscurl
parancsokat egy másik terminálról (amely nem SSH-munkamenet az előtérpéldányokon).A
nslookup
háttérbeli webalkalmazás nyilvános IP-címét adja vissza. Mivel a háttérbeli webalkalmazás nyilvános hozzáférése le van tiltva, a nyilvános IP-cím elérésekor a hozzáférés megtagadása hibaüzenet jelenik meg. Ez a hiba azt jelenti, hogy ez a webhely nem érhető el a nyilvános internetről, ami a kívánt viselkedés. Eznslookup
nem oldja fel a privát IP-címet, mert ez csak a virtuális hálózaton belülről, a privát DNS-zónán keresztül oldható fel. Csak az előtérbeli webalkalmazás van a virtuális hálózaton belül. Ha a külső terminálról próbál futtatnicurl
a háttérbeli webalkalmazáson, a visszaadott HTML tartalmazza a következőtWeb App - Unavailable
: . Ez a hiba megjeleníti a korábban a böngészőben a háttérbeli webalkalmazásra való navigáláskor látott hibalap HTML-kódját.
9. Erőforrások megtisztítása
Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nem lesz szüksége ezekre az erőforrásokra a jövőben, törölje az erőforráscsoportot a következő parancs Cloud Shellben történő futtatásával.
az group delete --name myresourcegroup
A parancs futtatása eltarthat néhány percig.
Gyakori kérdések
- Létezik alternatív megoldás a szolgáltatásnév használatával történő üzembe helyezésre?
- Mi történik, ha konfigurálom a GitHub Actions üzembe helyezését az App Service-ben?
- Biztonságos- e a háttérrendszer SCM-jének nyilvánosan hozzáférhetőnek hagyása?
- Van mód az üzembe helyezésre anélkül, hogy egyáltalán megnyitná a háttérbeli SCM-helyet?
- Hogyan helyezhetem üzembe ezt az architektúrát az ARM/Bicep használatával?
Létezik alternatív megoldás a szolgáltatásnév használatával történő üzembe helyezésre?
Mivel ebben az oktatóanyagban letiltotta az alapszintű hitelesítést, nem végezhet hitelesítést a háttérbeli SCM-webhelyen felhasználónévvel és jelszóval, és közzétételi profillal sem. Szolgáltatásnév helyett az OpenID Connectet is használhatja.
Mi történik, ha konfigurálom a GitHub Actions üzembe helyezését az App Service-ben?
Az Azure automatikusan létrehoz egy munkafolyamat-fájlt az adattárban. A kijelölt adattárban és ágban lévő új véglegesítések mostantól folyamatosan üzembe helyezhetők az App Service-alkalmazásban. A véglegesítéseket és az üzembe helyezéseket a Naplók lapon követheti nyomon.
Egy alapértelmezett munkafolyamat-fájl, amely közzétételi profilt használ az App Service-hitelesítéshez, hozzáadódik a GitHub-adattárhoz. Ezt a fájlt a <repo-name>/.github/workflows/
könyvtárban tekintheti meg.
Biztonságos- e a háttérrendszer SCM-jének nyilvánosan hozzáférhetőnek hagyása?
Ha zárolja az FTP- és SCM-hozzáférést, az biztosítja, hogy csak a Microsoft Entra által támogatott tagok férhessenek hozzá az SCM-végponthoz annak ellenére, hogy az nyilvánosan elérhető. Ez a beállítás biztosítja, hogy a háttérbeli webalkalmazás továbbra is biztonságos legyen.
Van mód az üzembe helyezésre anélkül, hogy egyáltalán megnyitná a háttérbeli SCM-helyet?
Ha aggódik az SCM-webhelyhez való nyilvános hozzáférés engedélyezése miatt, vagy szabályzatok korlátozzák, fontolja meg az App Service egyéb üzembe helyezési lehetőségeit, például a ZIP-csomagból való futtatást.
Hogyan helyezhetem üzembe ezt az architektúrát az ARM/Bicep használatával?
Az oktatóanyagban létrehozott erőforrások ARM/Bicep-sablonnal telepíthetők. A Bicep-sablonhoz csatlakoztatott alkalmazás lehetővé teszi egy biztonságos N szintű alkalmazásmegoldás létrehozását.
Az ARM/Bicep-sablonok üzembe helyezéséről az Erőforrások üzembe helyezése a Bicep és az Azure CLI használatával című témakörben olvashat.