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

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

Docker File Options

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.

  1. A Docker Desktop Gépház képernyőjén válassza a Megosztott meghajtók lehetőséget.
  2. 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.

  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 ki egy helyet.
  4. Válasszon ki egy megfelelő termékváltozatot, például alapszintűt.
  5. Select Review + create.
  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 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.

Visual Studio: Publish dialog - select Azure

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

Visual Studio: Publish dialog - select container registry

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: Publish dialog - select container registry details

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

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.

Visual Studio Code - Docker: Connect registry

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.

Visual Studio Code - Docker: Deploy image to Azure Container Instances

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.

  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. Select Review + create.
  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ö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.

Azure portal: Container instance running

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.

Kapcsolódó információk