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 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

Ú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.

Docker-fájlbeállítások

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.

  1. A Docker Desktop Beállítások képernyőjén válassza a Megosztott meghajtók lehetőséget.
  2. 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.

  1. Válassza ki az előfizetést és a megfelelő erőforráscsoportot (vagy hozzon létre egy újat).
  2. Adjon meg egy beállításjegyzéknevet.
  3. Válasszon egy helyet.
  4. Válasszon ki egy megfelelő termékváltozatot, például alapszintűt.
  5. Válassza az Áttekintés + létrehozás lehetőséget.
  6. 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.

Visual Studio: Közzététel párbeszédpanel – az Azure kiválasztása

Az adott célhoz válassza az Azure Container Registryt , majd a Tovább lehetőséget.

Visual Studio: Közzététel párbeszédpanel – tárolóregisztrációs adatbázis kiválasztása

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.

Visual Studio: Közzététel párbeszédpanel – tárolóregisztrációs adatbázis adatainak kiválasztása

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.

Visual Studio Code: Docker – kép feltöltése

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 build parancsot 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.

Visual Studio Code – Docker: Beállításjegyzék csatlakoztatása

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.

Visual Studio Code – Docker: Rendszerkép üzembe helyezése az Azure Container Instancesben

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.

  1. Válassza ki ugyanazt az előfizetést és a megfelelő erőforráscsoportot az előző szakaszban.
  2. Adjon meg egy tárolónevetappcloudservice-container
  3. Válasszon ki egy régiót , amely megfelel az előző hely kiválasztásának.
  4. Képforrásként válassza az Azure Container Registryt.
  5. Válassza ki a beállításjegyzéket az előző lépésben megadott név alapján.
  6. Válassza ki a Kép és kép címkét.
  7. Válassza az Áttekintés + létrehozás lehetőséget.
  8. 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.

Azure Portal: A tárolópéldány fut

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.

Lásd még