Nasazení služby Worker Service do Azure
V tomto článku se dozvíte, jak nasadit službu .NET Worker Service do Azure. Když je váš pracovní proces spuštěný jako služba Azure Container Instance (ACI) ze služby Azure Container Registry (ACR), může fungovat jako mikroslužba v cloudu. Existuje mnoho případů použití pro dlouhotrvající služby a pracovní služba existuje z tohoto důvodu.
V tomto kurzu se naučíte:
- Vytvořte pracovní službu.
- Vytvořte prostředek registru kontejneru.
- Nasdílení image do registru kontejneru
- Nasazení jako instance kontejneru
- Ověřte funkčnost služby pracovního procesu.
Tip
Všechny ukázkové zdrojové kódy Pracovních procesů v .NET jsou k dispozici v prohlížeči ukázek ke stažení. Další informace najdete v tématu Procházení ukázek kódu: Pracovní procesy v .NET.
Požadavky
- Sada .NET 5.0 SDK nebo novější.
- Docker Desktop (Windows nebo Mac).
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- V závislosti na zvoleném vývojovém prostředí:
Vytvoření nového projektu
Chcete-li vytvořit nový projekt služby pracovního procesu pomocí sady Visual Studio, vyberte Soubor>nový>projekt.... V dialogovém okně Vytvořit nový projekt vyhledejte "Pracovní služba" a vyberte šablonu pracovní služby. Zadejte požadovaný název projektu, vyberte příslušné umístění a vyberte Další. Na stránce Další informace vyberte cílovou architekturu .NET 5.0
a zaškrtněte možnost Povolit Dockeru, abyste povolili podporu Dockeru. Vyberte požadovaný operační systém Dockeru.
Pokud chcete vytvořit nový projekt Služby pracovních procesů pomocí editoru Visual Studio Code, můžete z integrovaného terminálu spustit příkazy rozhraní příkazového řádku .NET. Další informace naleznete v tématu Visual Studio Code: Integrovaný terminál.
Otevřete integrovaný terminál a spusťte dotnet new
příkaz a nahraďte <Project.Name>
název požadovaného projektu.
dotnet new worker --name <Project.Name>
Další informace o novém příkazu pracovního procesu rozhraní příkazového řádku .NET CLI najdete v tématu dotnet new worker.
Pokud chcete vytvořit nový projekt Služby pracovních procesů pomocí rozhraní příkazového řádku .NET, otevřete svůj oblíbený terminál v pracovním adresáři. dotnet new
Spusťte příkaz a nahraďte název požadovaného <Project.Name>
projektu.
dotnet new worker --name <Project.Name>
Další informace o novém příkazu pracovního procesu rozhraní příkazového řádku .NET CLI najdete v tématu dotnet new worker.
Sestavte aplikaci, aby se zajistilo, že obnoví závislé balíčky a zkompiluje se bez chyby.
Pokud chcete sestavit aplikaci ze sady Visual Studio, vyberte F6 nebo vyberte možnost nabídky Sestavit>řešení sestavení.
Pokud chcete sestavit aplikaci z editoru Visual Studio Code, otevřete okno integrovaného terminálu a spusťte dotnet build
příkaz z pracovního adresáře.
dotnet build
Další informace o příkazu sestavení .NET CLI najdete v tématu dotnet build
.
Pokud chcete sestavit aplikaci z rozhraní příkazového řádku .NET, spusťte dotnet build
příkaz z pracovního adresáře.
dotnet build <path/to/project.csproj>
Zadejte hodnotu <path/to/project.csproj>
, což je cesta k souboru projektu, který se má sestavit. Další informace o příkazu sestavení .NET CLI najdete v tématu dotnet build
.
Přidání podpory Dockeru
Pokud jste při vytváření nového projektu pracovního procesu správně vybrali políčko Povolit Docker , přejděte ke kroku Sestavení image Dockeru.
Pokud jste tuto možnost nevybrali, nemusíte mít obavy – můžete ji přesto přidat. V sadě Visual Studio klikněte pravým tlačítkem na uzel projektu v Průzkumník řešení a vyberte Přidat>podporu Dockeru. Zobrazí se výzva k výběru cílového operačního systému. Vyberte OK s výchozím výběrem operačního systému.
V editoru Visual Studio Code potřebujete nainstalované rozšíření Dockeru a rozšíření účtu Azure. Otevřete paletu příkazů a vyberte možnost Docker: Přidat soubory Dockeru do pracovního prostoru . Pokud se zobrazí výzva k výběru aplikační platformy, zvolte .NET: Konzola Core. Pokud se zobrazí výzva k výběru projektu, zvolte projekt pracovní služby, který jste vytvořili. Po zobrazení výzvy k výběru operačního systému zvolte první uvedený operační systém. Po zobrazení výzvy, jestli chcete zahrnout volitelné soubory Docker Compose, vyberte Ne.
Podpora Dockeru vyžaduje soubor Dockerfile. Tento soubor je sada komplexních pokynů pro sestavení služby .NET Worker Service jako image Dockeru. Soubor Dockerfile je soubor bez přípony souboru. Následující kód je příkladem souboru Dockerfile a měl by existovat v kořenovém adresáři souboru projektu.
V rozhraní příkazového řádku se pro vás soubor Dockerfile nevytvořil. Zkopírujte jeho obsah do nového souboru s názvem Dockerfile v kořenovém adresáři projektu.
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"]
Poznámka:
Potřebujete aktualizovat různé řádky v souboru Dockerfile , které odkazují na *App.CloudService– nahraďte ho názvem vašeho projektu.
Další informace o oficiálních imagích .NET najdete v tématu Docker Hub: .NET Runtime a Docker Hub: .NET SDK.
Sestavení image Dockeru
Pokud chcete sestavit image Dockeru, musí být spuštěný modul Dockeru.
Důležité
Pokud používáte Docker Desktop a Visual Studio, abyste se vyhnuli chybám souvisejícím se sdílením svazků – ujistěte se, že je povolený.
- Na obrazovce Nastavení v Desktopu Dockeru vyberte Sdílené jednotky.
- Vyberte jednotky obsahující soubory projektu.
Další informace najdete v tématu Řešení potíží s vývojem sady Visual Studio pomocí Dockeru.
V Průzkumník řešení klikněte pravým tlačítkem na soubor Dockerfile a vyberte Sestavit image Dockeru. Zobrazí se okno Výstup , ve které se docker build
hlásí průběh příkazu.
V Průzkumníku klikněte pravým tlačítkem na soubor Dockerfile a vyberte Sestavit image. Po zobrazení výzvy k označení obrázku jako zadejte appcloudservice:latest
. Zobrazí se výstupní terminál úlohy Dockeru, který hlásí průběh příkazu sestavení Dockeru.
Poznámka:
Pokud se nezobrazí výzva k označení image, je možné, že Visual Studio Code spoléhá na existující tasks.json. Pokud je použitá značka nežádoucí, můžete ji změnit aktualizací docker-build
hodnoty položky dockerBuild/tag
konfigurace v tasks
poli. Podívejte se na následující příklad konfigurační části:
{
"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"
}
}
Otevřete okno terminálu v kořenovém adresáři souboru Dockerfile a spusťte následující příkaz dockeru:
docker build -t appcloudservice:latest -f Dockerfile .
docker build
Při spuštění příkazu zpracovává každý řádek v souboru Dockerfile jako krok s pokyny. Tento příkaz sestaví image a vytvoří místní úložiště s názvem appcloudservice , které odkazuje na image.
Tip
Vygenerovaný soubor Dockerfile se liší mezi vývojovými prostředími. Pokud například přidáte podporu Dockeru ze sady Visual Studio, může docházet k problémům, pokud se pokusíte sestavit image Dockeru z editoru Visual Studio Code – postup souboru Dockerfile se liší. Nejlepší je zvolit jedno vývojové prostředí a používat ho v průběhu tohoto kurzu.
Vytvoření registru kontejneru
Prostředek Služby Azure Container Registry (ACR) umožňuje vytvářet, ukládat a spravovat image kontejnerů a artefakty v privátním registru. Pokud chcete vytvořit registr kontejneru, musíte na webu Azure Portal vytvořit nový prostředek .
- Vyberte předplatné a odpovídající skupinu prostředků (nebo vytvořte novou).
- Zadejte název registru.
- Vyberte Umístění.
- Vyberte příslušnou skladovou položku, například Basic.
- Vyberte Zkontrolovat a vytvořit.
- Po úspěšném ověření vyberte Vytvořit.
Důležité
Chcete-li použít tento registr kontejneru při vytváření instance kontejneru, musíte povolit Správa uživatele. Vyberte Přístupové klíče a povolte Správa uživatele.
Prostředek Služby Azure Container Registry (ACR) umožňuje vytvářet, ukládat a spravovat image kontejnerů a artefakty v privátním registru. Otevřete okno terminálu v kořenovém adresáři souboru Dockerfile a spusťte následující příkaz Azure CLI:
Důležité
Pokud chcete pracovat s prostředky Azure z Azure CLI, musíte být ověřeni pro svoji terminálovou relaci. K ověření použijte az login
příkaz:
az login
Po přihlášení použijte az account set
příkaz k zadání předplatného, pokud máte více než jedno a žádné výchozí nastavení předplatného.
az account set --subscription <subscription name or id>
Jakmile se přihlásíte k Azure CLI, vaše relace může odpovídajícím způsobem pracovat s prostředky.
Pokud ještě nemáte skupinu prostředků, ke které byste chtěli přidružit pracovní službu, vytvořte ji pomocí az group create
příkazu:
az group create -n <resource group> -l <location>
<resource group>
Zadejte název a .<location>
Pokud chcete vytvořit registr kontejneru az acr create
, zavolejte příkaz.
az acr create -n <registry name> -g <resource group> --sku <sku> --admin-enabled true
Zástupné symboly nahraďte vlastními příslušnými hodnotami:
<registry name>
: název registru.<resource group>
: název skupiny prostředků, kterou jste použili.<sku>
: akceptované hodnoty, Basic, Classic, Premium nebo Standard.
Předchozí příkaz:
- Vytvoří službu Azure Container Registry s názvem registru v zadané skupině prostředků.
- Povolili Správa uživatele – to se vyžaduje pro službu Azure Container Instances.
Další informace najdete v tématu Rychlý start: Vytvoření registru kontejneru Azure.
Nahrání image do registru kontejneru
Se sestavenou imagí Dockeru .NET a vytvořeným prostředkem registru kontejneru teď můžete odeslat image do registru kontejneru.
Klikněte pravým tlačítkem na projekt v Průzkumník řešení a vyberte Publikovat. Zobrazí se dialogové okno Publikovat . Jako cíl vyberte Azure a pak Další.
Jako konkrétní cíl vyberte Azure Container Registry a pak Další.
Dále v registru kontejneru vyberte název předplatného, který jste použili k vytvoření prostředku ACR. V oblasti výběru Registry kontejnerů vyberte registr kontejneru, který jste vytvořili, a pak vyberte Dokončit.
Tím se vytvoří profil publikování, který lze použít k publikování image do registru kontejneru. Výběrem tlačítka Publikovat odešlete image do registru kontejneru, okno Výstup hlásí průběh publikování a po úspěšném dokončení se zobrazí zpráva "Úspěšně publikováno".
Na panelu aktivit v editoru Visual Studio Code vyberte Docker. Rozbalte panel stromového zobrazení IMAGES a rozbalte uzel obrázku appcloudservice
a klikněte pravým tlačítkem myši na latest
značku.
Integrované okno terminálu hlásí průběh docker push
příkazu do registru kontejneru.
Pokud chcete odeslat image do registru kontejneru, musíte se nejdřív přihlásit k registru:
az acr login -n <registry name>
Příkaz az acr login
se přihlásí k registru kontejneru prostřednictvím rozhraní příkazového řádku Dockeru. Pokud chcete odeslat image do registru kontejneru, použijte příkaz az acr build s názvem registru kontejneru <registry name>
jako :
az acr build -r <registry name> -t appcloudservice .
Předchozí příkaz:
- Zabalí zdroj do souboru tar .
- Nahraje ho do registru kontejneru.
- Registr kontejneru rozbalí soubor tar .
docker build
Spustí příkaz v prostředku registru kontejneru proti souboru Dockerfile.- Přidá image do registru kontejneru.
Pokud chcete ověřit, že se image úspěšně odeslala do registru kontejneru, přejděte na web Azure Portal. V části Služby otevřete prostředek registru kontejneru a vyberte Úložiště. Měl by se zobrazit obrázek.
Nasazení jako instance kontejneru
V editoru Visual Studio Code vyberte Na panelu aktivit Docker. Rozbalte uzel REGISTRIES a vyberte Připojení Registr. Po zobrazení výzvy vyberte Azure a v případě potřeby se přihlaste.
Důležité
Nasazení jako instance kontejneru ze sady Visual Studio Code už nefunguje na Macu. Další informace najdete v tématu GitHub: O rozšíření Dockeru pro Visual Studio Code.
Rozbalte uzel REGISTRIES, vyberte Azure, vaše předplatné > registru > kontejneru image a potom klikněte pravým tlačítkem myši na značku. Vyberte Nasadit image do služby Azure Container Instances.
Pokud chcete vytvořit instanci kontejneru, nejprve pomocí příkazu vytvořte skupinu az container create
kontejnerů.
az container create -g <resource group> \
--name <instance name> \
--image <registry name>.azurecr.io/<image name>:latest \
--registry-password <password>
Zadejte příslušné hodnoty:
<resource group>
: Název skupiny prostředků, který jste používali v tomto kurzu.<instance name>
: název instance kontejneru.<registry name>
: název registru kontejneru.<image name>
: název obrázku.<password>
: heslo k registru kontejneru – můžete ho získat z webu Azure Portal, přístupových klíčů prostředků >služby Container Registry.
Pokud chcete vytvořit instanci kontejneru, musíte také vytvořit nový prostředek na webu Azure Portal.
- Vyberte stejné předplatné a odpovídající skupinu prostředků z předchozí části.
- Zadejte název kontejneru.
appcloudservice-container
- Vyberte oblast, která odpovídá předchozímu výběru umístění.
- Jako zdroj image vyberte Azure Container Registry.
- Vyberte registr podle názvu, který jste zadali v předchozím kroku.
- Vyberte značku Obrázek a Obrázek.
- Vyberte Zkontrolovat a vytvořit.
- Za předpokladu, že ověření proběhlo, vyberte Vytvořit.
Vytvoření prostředků může chvíli trvat. Po vytvoření vyberte tlačítko Přejít k prostředku .
Další informace najdete v tématu Rychlý start: Vytvoření instance kontejneru Azure.
Ověření funkčnosti služby
Ihned po vytvoření instance kontejneru se spustí.
Pokud chcete ověřit, že vaše pracovní služba funguje správně, přejděte na web Azure Portal v prostředku instance kontejneru a vyberte možnost Kontejnery .
Zobrazí se kontejnery a jejich aktuální stav. V tomto případě je spuštěno. Výběrem možnosti Protokoly zobrazíte výstup pracovní služby .NET.
Pokud chcete ověřit, že vaše pracovní služba funguje správně, můžete zobrazit protokoly ze spuštěné aplikace. az container logs
Použijte příkaz:
az container logs -g <resource group> --name <instance name>
Zadejte příslušné hodnoty:
<resource group>
: Název skupiny prostředků, který jste používali v tomto kurzu.<instance name>
: název instance kontejneru.
Zobrazí se výstupní protokoly služby pracovního procesu .NET, což znamená, že jste kontejnerizovanou aplikaci úspěšně nasadili do ACI.