Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan helyezhet üzembe egy .NET-feldolgozó szolgáltatást az Azure-ban. Mivel a Worker Azure Container Instance-ként (ACI) fut az Azure Container Registry-ből (ACR), mikroszolgáltatásként működhet a felhőben. A hosszú ideig futó szolgáltatásokhoz számos használati eset létezik, ezért létezik a Feldolgozó szolgáltatás.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- Munkavállalói szolgáltatás létrehozása.
- Konténer-regisztráció erőforrás létrehozása.
- Képfájl felöltése a konténerregisztrációba.
- Üzembe helyezés konténerpéldányként.
- Ellenőrizze a munkavállalói szolgáltatás működését.
Jótanács
A "Feldolgozók a .NET-ben" példaforráskódok mindegyike letölthető a Mintaböngészőben . További információért lásd: Kódrészletek böngészése: Munkavégzők a .NET-ben.
Előfeltételek
- A .NET 5.0 SDK vagy újabb.
- Docker Desktop (Windows vagy Mac).
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy fiókot ingyenesen.
- A választott fejlesztői környezettől függően:
Új projekt létrehozása
Ha új Worker Service-projektet szeretne létrehozni a Visual Studióval, válassza a Fájl>új>projekt... lehetőséget. Az Új projekt létrehozása párbeszédpanelen keressen rá a "Worker Service" kifejezésre, és válassza a Worker Service sablont. Adja meg a kívánt projektnevet, válassza ki a megfelelő helyet, és válassza a Tovább lehetőséget. A További információ lapon válassza a Target Framework lehetőséget .NET 5.0, és ellenőrizze a Docker engedélyezése lehetőséget a Docker támogatásának engedélyezéséhez. Válassza ki a kívánt Docker-operációs rendszert.
Ha új Worker Service-projektet szeretne létrehozni a Visual Studio Code-tal, .NET CLI-parancsokat futtathat az integrált terminálról. További információ: Visual Studio Code: Integrated Terminal.
Nyissa meg az integrált terminált, futtassa a dotnet new parancsot, és cserélje le a <Project.Name> a kívánt projektnevére.
dotnet new worker --name <Project.Name>
A .NET CLI új feldolgozói szolgáltatás projektparancsával kapcsolatos további információkért lásd: dotnet new worker.
Ha új Worker Service-projektet szeretne létrehozni a .NET parancssori felülettel, nyissa meg kedvenc terminálját egy munkakönyvtárban. Futtassa a dotnet new parancsot, és cserélje le a <Project.Name> a kívánt projekt nevére.
dotnet new worker --name <Project.Name>
A .NET CLI új feldolgozói szolgáltatás projektparancsával kapcsolatos további információkért lásd: dotnet new worker.
Az alkalmazást úgy hozhatja létre, hogy az visszaállítsa a függő csomagokat, és hiba nélkül lefordítsa.
Ha az alkalmazást a Visual Studióból szeretné létrehozni, válassza az F6 lehetőséget, vagy válassza a Build>Build Solution menüt.
Az alkalmazás Visual Studio Code-ból való létrehozásához nyissa meg az integrált terminálablakot, és futtassa a dotnet build parancsot a munkakönyvtárból.
dotnet build
A .NET CLI buildelési parancsával kapcsolatos további információkért lásd: dotnet build.
Az alkalmazás .NET CLI-ből való létrehozásához futtassa a dotnet build parancsot a munkakönyvtárból.
dotnet build <path/to/project.csproj>
Adja meg az <path/to/project.csproj> értéket, amely a buildelendő projektfájl elérési útja. A .NET CLI buildelési parancsával kapcsolatos további információkért lásd: dotnet build.
Docker-támogatás hozzáadása
Ha helyesen jelölte ki a Docker engedélyezése jelölőnégyzetet egy új Feldolgozó projekt létrehozásakor, ugorjon a Docker-rendszerkép készítése lépésre.
Ha nem ezt a lehetőséget jelölte ki, nem kell aggódnia – most is hozzáadhatja. A Visual Studióban kattintson a jobb gombbal a projektcsomópontra a Megoldáskezelőben, és válassza aDocker-támogatás> lehetőséget. A rendszer kérni fogja, hogy válasszon ki egy cél operációs rendszert; válassza az OK gombot az alapértelmezett operációsrendszer-kijelöléssel.
A Visual Studio Code-ban telepítve kell lennie a Docker-bővítménynek és az Azure Account bővítménynek . Nyissa meg a parancskatalógust, és válassza a Docker: Docker-fájlok hozzáadása a munkaterülethez lehetőséget. Ha a rendszer az alkalmazásplatform kiválasztására kéri, válassza a .NET: Core Console lehetőséget. Ha a rendszer a Projekt kiválasztására kéri, válassza ki a létrehozott Feldolgozó szolgáltatás projektet. Amikor a rendszer az operációs rendszer kiválasztására kéri, válassza ki az első felsorolt operációs rendszert. Amikor a rendszer megkérdezi, hogy szerepeljenek-e választható Docker Compose-fájlok, válassza a Nem lehetőséget.
A Docker-támogatáshoz Docker-fájl szükséges. Ez a fájl átfogó útmutatást tartalmaz a .NET Worker Service Docker-rendszerképként való létrehozásához. A Dockerfile egy kiterjesztés nélküli fájl. Az alábbi kód egy példa Dockerfile, és a projektfájl gyökérkönyvtárában kell lennie.
A parancssori felülettel Önnek nem jön létre a Dockerfile. Másolja a tartalmát egy dockerfile nevű új fájlba a projekt gyökérkönyvtárában.
FROM mcr.microsoft.com/dotnet/runtime:8.0@sha256:e6b552fd7a0302e4db30661b16537f7efcdc0b67790a47dbf67a5e798582d3a5 AS base
WORKDIR /app
# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
FROM mcr.microsoft.com/dotnet/sdk:8.0@sha256:35792ea4ad1db051981f62b313f1be3b46b1f45cadbaa3c288cd0d3056eefb83 AS build
WORKDIR /src
COPY ["App.CloudService.csproj", "./"]
RUN dotnet restore "App.CloudService.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "App.CloudService.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "App.CloudService.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "App.CloudService.dll"]
Megjegyzés:
Frissítenie kell az *App.CloudService-ra hivatkozó Dockerfile különböző sorait – ezt cserélje le a projekt nevére.
A hivatalos .NET-rendszerképekre vonatkozó további információkért lásd : Docker Hub: .NET Runtime and Docker Hub: .NET SDK.
A Docker-rendszerkép összeállítása
A Docker-rendszerkép létrehozásához a Docker-motornak futnia kell.
Fontos
A Docker Desktop és a Visual Studio használatakor a kötetmegosztással kapcsolatos hibák elkerülése érdekében győződjön meg arról, hogy a kötetmegosztás engedélyezve van.
- A Docker Desktop Beállítások képernyőjén válassza a Megosztott meghajtók lehetőséget.
- Válassza ki a projektfájlokat tartalmazó meghajtókat.
További információ: Visual Studio-fejlesztés hibaelhárítása a Dockerrel.
Kattintson a jobb gombbal a Dockerfile-ra a Megoldáskezelőben, és válassza a Docker-rendszerkép összeállítása lehetőséget. Megjelenik a Kimenet ablak, amely a parancs előrehaladását docker build jelenti.
Kattintson a jobb gombbal a Dockerfile-ra az Explorerben, és válassza a Build Image (Rendszerkép létrehozása) lehetőséget. Amikor megjelenik a felszólítás a kép címkézésére, írja be a következőt: appcloudservice:latest. Megjelenik a Docker-feladat kimeneti terminálja, amely a Docker buildelési parancs előrehaladását jelenti.
Megjegyzés:
Ha a rendszer nem kéri a kép címkézését, akkor lehetséges, hogy a Visual Studio Code, egy meglévő tasks.json-ra támaszkodik. Ha a használt címke nem kívánatos, módosíthatja a docker-build konfigurációelem dockerBuild/tag értékét a tasks tömbben. Tekintse meg a következő példakonfigurációs szakaszt:
{
"type": "docker-build",
"label": "docker-build: release",
"dependsOn": [
"build"
],
"dockerBuild": {
"tag": "appcloudservice:latest",
"dockerfile": "${workspaceFolder}/cloud-service/Dockerfile",
"context": "${workspaceFolder}",
"pull": true
},
"netCore": {
"appProject": "${workspaceFolder}/cloud-service/App.CloudService.csproj"
}
}
Nyisson meg egy terminálablakot a Dockerfile gyökérkönyvtárában, és futtassa a következő Docker-parancsot:
docker build -t appcloudservice:latest -f Dockerfile .
A docker build parancs futtatásakor utasításlépésként dolgozza fel a Dockerfile egyes sorait. Ez a parancs létrehozza a rendszerképet, és létrehoz egy appcloudservice nevű helyi adattárat, amely a képre mutat.
Jótanács
A létrehozott Dockerfile különbözik a fejlesztési környezetektől. Ha például a Docker-támogatást a Visual Studióból adja hozzá, problémák léphetnek fel, ha a Docker-rendszerképet a Visual Studio Code-ból próbálja létrehozni – mivel a Dockerfile lépései eltérőek. A legjobb, ha egyetlen fejlesztési környezetet választ, és használja az oktatóanyag során.
Tárolóregisztrációs adatbázis létrehozása
Az Azure Container Registry (ACR) erőforrás lehetővé teszi tárolólemezképek és -összetevők magánregisztrációs adatbázisban való összeállítását, tárolását és kezelését. Tárolóregisztrációs adatbázis létrehozásához létre kell hoznia egy új erőforrást az Azure Portalon.
- Válassza ki az előfizetést és a megfelelő erőforráscsoportot (vagy hozzon létre egy újat).
- Adjon meg egy beállításjegyzéknevet.
- Válasszon egy helyet.
- Válasszon ki egy megfelelő termékváltozatot, például alapszintűt.
- Válassza az Áttekintés + létrehozás lehetőséget.
- Miután az ellenőrzés sikeres volt, válassza a Létrehozás lehetőséget.
Fontos
Ahhoz, hogy ezt a tárolóregisztrációs adatbázist használhassa egy tárolópéldány létrehozásakor, engedélyeznie kell a rendszergazdai felhasználót. Válassza ki a hozzáférési kulcsokat, és engedélyezze a rendszergazdai felhasználót.
Az Azure Container Registry (ACR) erőforrás lehetővé teszi tárolólemezképek és -összetevők magánregisztrációs adatbázisban való összeállítását, tárolását és kezelését. Nyisson meg egy terminálablakot a Dockerfile gyökérkönyvtárában, és futtassa a következő Azure CLI-parancsot:
Fontos
Az Azure CLI-ből származó Azure-erőforrások használatához hitelesíteni kell a terminálmunkamenethez. A hitelesítéshez használja a az login következő parancsot:
az login
Miután bejelentkezett, az az account set paranccsal adja meg az előfizetését, ha egynél több előfizetése van és nincs alapértelmezett előfizetése.
az account set --subscription <subscription name or id>
Miután bejelentkezett az Azure CLI-be, a munkamenet ennek megfelelően kezelheti az erőforrásokat.
Ha még nincs olyan erőforráscsoportja, amellyel társítani szeretné a feldolgozói szolgáltatást, hozzon létre egyet a az group create következő paranccsal:
az group create -n <resource group> -l <location>
Adja meg a <resource group> nevet és a <location>. Tárolóregisztrációs adatbázis létrehozásához hívja meg a az acr create parancsot.
az acr create -n <registry name> -g <resource group> --sku <sku> --admin-enabled true
Cserélje le a helyőrzőket az ön számára alkalmas értékekre.
-
<registry name>: a beállításjegyzék neve. -
<resource group>: a használt erőforráscsoport neve. -
<sku>: elfogadott értékek, Alapszintű, Klasszikus, Prémium vagy Standard.
Az előző parancs:
- A megadott erőforráscsoportban létrehoz egy Azure Container Registry-t a megadott beállításjegyzéknévvel.
- Rendszergazdai felhasználó engedélyezése – erre az Azure Container Instances esetében van szükség.
További információ : Rövid útmutató: Azure-tárolóregisztrációs adatbázis létrehozása.
Image feltöltése a konténer-regisztrációs tárba
A .NET Docker-rendszerkép létrehozása és a tárolóregisztrációs adatbázis-erőforrás létrehozása után a rendszerképet leküldheti a tárolóregisztrációs adatbázisba.
Kattintson a jobb gombbal a projektre a Megoldáskezelőben, és válassza a Közzététel lehetőséget. Megjelenik a Közzététel párbeszédpanel. A célhoz válassza az Azure-t , majd a Tovább lehetőséget.
Az adott célhoz válassza az Azure Container Registryt , majd a Tovább lehetőséget.
Ezután a Tárolóregisztrációs adatbázisnál válassza ki az ACR-erőforrás létrehozásához használt előfizetés nevét . A Tárolóregisztrációs adatbázisok kijelölési területén válassza ki a létrehozott tárolóregisztrációs adatbázist, majd válassza a Befejezés lehetőséget.
Ez létrehoz egy közzétételi profilt, amellyel közzéteheti a lemezképet a tárolóregisztrációs adatbázisban. A Közzététel gombra kattintva leküldheti a lemezképet a tárolóregisztrációs adatbázisba, a Kimenet ablak pedig a közzététel előrehaladását jelenti – és ha sikeresen befejeződött, megjelenik a "Sikeres közzététel" üzenet.
Válassza a Dockert a Visual Studio Code tevékenységsávjában . Bontsa ki a KÉPEK fanézet panelt, majd bontsa ki a appcloudservice képcsomópontot, és kattintson a jobb gombbal a latest címkére.
Az integrált terminálablak jelentést tesz a docker push parancs előrehaladásáról a tároló regisztrációs adatbázisba.
Ha feltölteni szeretne egy képmást a konténer regisztrációs adatbázisba, először be kell jelentkeznie a regisztrációs adatbázisba.
az acr login -n <registry name>
A az acr login parancs a Docker parancssori felületén keresztül jelentkezik be egy tárolóregisztrációs adatbázisba. Ahhoz, hogy a lemezképet feltöltse a konténer regiszterbe, használja az az acr build parancsot a konténer regiszter nevével a <registry name>:
az acr build -r <registry name> -t appcloudservice .
Az előző parancs:
- A forrást egy tar fájlba csomagolja.
- Feltölti a tárolóregisztrációs adatbázisba.
- A tárolóregisztrációs adatbázis kicsomagolja a tar fájlt.
- Futtatja a
docker buildparancsot a konténerregisztrációs erőforrásban a Dockerfile ellen. - Hozzáadja a lemezképet a tárolóregisztrációs adatbázishoz.
Annak ellenőrzéséhez, hogy a rendszerkép sikeresen le lett-e küldve a tárolóregisztrációs adatbázisba, lépjen az Azure Portalra. Nyissa meg a tárolóregisztrációs adatbázis erőforrását a Szolgáltatások területen, és válassza az Adattárak lehetőséget. Látnia kell a képet.
Tárolópéldányként történő üzembe helyezés
A Visual Studio Code-ból válassza a Dockert a tevékenységsávon. Bontsa ki a REGISTRIES csomópontot, és válassza a Beállításjegyzék csatlakoztatása lehetőséget. Amikor a rendszer kéri, válassza az Azure-t , és szükség esetén jelentkezzen be.
Fontos
A Visual Studio Code-ból tárolópéldányként történő üzembe helyezés már nem működik Mac gépen. További információ : GitHub: About Docker Extension for Visual Studio Code.
Bontsa ki a REGISTRIES csomópontot, válassza ki az Azure-t, az előfizetését > a lemezkép tárolóregisztrációs adatbázisában > , majd kattintson a jobb gombbal a címkére. Válassza az Azure Container Instancesben való rendszerkép üzembe helyezése lehetőséget.
Tárolópéldány létrehozásához először hozzon létre egy tárolócsoportot a az container create paranccsal.
az container create -g <resource group> \
--name <instance name> \
--image <registry name>.azurecr.io/<image name>:latest \
--registry-password <password>
Adja meg a megfelelő értékeket:
-
<resource group>: az oktatóanyagban használt erőforráscsoport neve. -
<instance name>: a tárolópéldány neve. -
<registry name>: a tárolóregisztrációs adatbázis neve. -
<image name>: a kép neve. -
<password>: a tárolóregisztrációs adatbázis jelszava – ezt az Azure Portalon, a Tárolóregisztrációs adatbázis > kulcsai között szerezheti be.
Tárolópéldány létrehozásához új erőforrást is létre kell hoznia az Azure Portalon.
- Válassza ki ugyanazt az előfizetést és a megfelelő erőforráscsoportot az előző szakaszban.
- Adjon meg egy tárolónevet –
appcloudservice-container - Válasszon ki egy régiót , amely megfelel az előző hely kiválasztásának.
- Képforrásként válassza az Azure Container Registryt.
- Válassza ki a beállításjegyzéket az előző lépésben megadott név alapján.
- Válassza ki a Kép és kép címkét.
- Válassza az Áttekintés + létrehozás lehetőséget.
- Feltételezve, hogy az ellenőrzés sikeres volt, válassza a Létrehozás lehetőséget.
Eltarthat egy ideig, amíg az erőforrások létrejönnek. Miután létrejöttek, válassza az Ugrás az erőforrásra gombot.
További információ : Rövid útmutató: Azure-tárolópéldány létrehozása.
A szolgáltatás működésének ellenőrzése
A konténerpéldány létrehozása után azonnal elkezdi a működését.
Ha ellenőrizni szeretné, hogy a feldolgozói szolgáltatás megfelelően működik-e, lépjen az Azure Portalra a tárolópéldány-erőforrásban, és válassza a Tárolók lehetőséget.
Látni fogja a tárolókat és az aktuális állapotukat. Ebben az esetben fut. Válassza a Naplók lehetőséget a .NET feldolgozói szolgáltatás kimenetének megtekintéséhez.
Annak ellenőrzéséhez, hogy a munkavállalói szolgáltatás megfelelően működik-e, megtekintheti a naplókat a futó alkalmazásban. Használja a az container logs parancsot:
az container logs -g <resource group> --name <instance name>
Adja meg a megfelelő értékeket:
-
<resource group>: az oktatóanyagban használt erőforráscsoport neve. -
<instance name>: a konténerpéldány neve.
Látni fogja a .NET feldolgozói szolgáltatás kimeneti naplóit, ami azt jelenti, hogy sikeresen üzembe helyezte a tárolóalapú alkalmazást az ACI-ben.