Feldolgozói szolgáltatás üzembe helyezése az Azure-ban
Ebből a cikkből megtudhatja, hogyan helyezhet üzembe egy .NET-feldolgozó szolgáltatást az Azure-ban. Mivel a feldolgozó azure container instanceként (ACI) fut az Azure Container Registrybő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 az alábbiakkal fog megismerkedni:
- Feldolgozói szolgáltatás létrehozása.
- Tárolóregisztrációs adatbázis-erőforrás létrehozása.
- Rendszerkép leküldése a tárolóregisztrációs adatbázisba.
- Üzembe helyezés tárolópéldányként.
- Ellenőrizze a feldolgozói szolgáltatás funkcióit.
Tipp.
A "Feldolgozók a .NET-ben" példaforráskódok mindegyike letölthető a Mintaböngészőben . További információ: Kódminták tallózása: Feldolgozók a .NET-ben.
Előfeltételek
- A .NET 5.0 SDK vagy újabb.
- Docker Desktop (Windows vagy Mac).
- An Azure account with an active subscription. Fiók ingyenes létrehozása.
- 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>
kívánt projektnevet.
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>
kívánt projektnevet.
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 Solution (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ő, és válassza a Docker-támogatás hozzáadása 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 fájlkiterjeszté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 a Dockerfile nem jön létre Önnek. 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 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 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álata esetén a kötetmegosztással kapcsolatos hibák elkerülése érdekében győződjön meg arról, hogy engedélyezve van.
- A Docker Desktop Gépház képernyőjén válassza a Megosztott meghajtók lehetőséget.
- Válassza ki a projektfájlokat tartalmazó meghajtó(ka)t.
További információ: Visual Studio-fejlesztés hibaelhárítása a Dockerrel.
Kattintson a jobb gombbal a Dockerfile-ra a Megoldáskezelő, é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 a rendszer a rendszerkép címkézését kéri, írja be a következőtappcloudservice: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, lehetséges, hogy a Visual Studio Code egy meglévő tasks.json függvényre 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.
Tipp.
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 ki egy helyet.
- Válasszon ki egy megfelelő termékváltozatot, például alapszintűt.
- Select Review + create.
- 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 Rendszergazda felhasználót. Válassza ki a hozzáférési kulcsokat, és engedélyezze Rendszergazda 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, a paranccsal adja meg az az account set
előfizetést, 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 a saját megfelelő értékre:
<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.
A fenti parancs a következőket hajtja végre:
- Létrehoz egy Azure Container Registryt a megadott erőforráscsoportban egy beállításjegyzéknévvel.
- Engedélyezve van egy Rendszergazda felhasználó – 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.
Rendszerkép leküldése a tárolóregisztrációs adatbázisba
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ő, é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 a parancs előrehaladását docker push
jelenti a tárolóregisztrációs adatbázisnak.
Ha le szeretne küldeni egy lemezképet a tárolóregisztrációs adatbázisba, először be kell jelentkeznie a beállításjegyzékbe:
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. Ha le szeretné küldeni a lemezképet a tárolóregisztrációs adatbázisba, használja az az acr build parancsot a tárolóregisztrációs adatbázis nevével a <registry name>
következőként:
az acr build -r <registry name> -t appcloudservice .
A fenti parancs a következőket hajtja végre:
- A forrást egy kátrányfá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 build
parancsot a tárolóregisztrációs erőforrásban a Dockerfile-ban. - 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.
Üzembe helyezés tárolópéldányként
A Visual Studio Code-ból válassza a Dockert a tevékenységsávon. Bontsa ki a REGISTRIES csomópontot, és válassza Csatlakozás Beállításjegyzéket. 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 a Rendszerkép üzembe helyezése az Azure Container Instancesben 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 erőforrás-hozzáférési >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.
- Select Review + create.
- 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ött az Ugrás az erőforrásra gombra.
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 tárolópéldány létrehozása után azonnal elindul.
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 feldolgozó szolgáltatás megfelelően működik-e, megtekintheti a naplókat a futó alkalmazásból. Használja a az container logs
következő 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 tárolópé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.