Jak uruchomić obraz Docker Aspose.CAD w funkcji Azure
Wymagania wstępne
- Docker musi być zainstalowany na twoim systemie. Aby uzyskać informacje na temat instalacji Dockera na Windows lub Mac, zapoznaj się z linkami w sekcji „Zobacz także”.
- Visual Studio 2022.
- W przykładzie używany jest SDK .NET 6.
- Postman
Funkcja Azure
W tym przykładzie tworzysz prostą funkcję konwersji, która konwertuje plik CAD i zapisuje go jako obraz. Aplikację można zbudować w Dockerze i uruchomić w funkcji Azure.
Tworzenie funkcji Azure
Aby utworzyć program funkcji Azure, wykonaj poniższe kroki:
- Po zainstalowaniu Dockera upewnij się, że używa kontenerów Linux (domyślnie). W razie potrzeby wybierz opcję Przełącz na kontenery Linux z menu Dockera Desktop.
- W Visual Studio utwórz funkcję Azure dla .NET 6.
- Dodatkowe informacje.
- Zainstaluj najnowszą wersję Aspose.CAD z NuGet.
- Ponieważ aplikacja będzie uruchamiana na Linuxie, może być konieczne zainstalowanie dodatkowych czcionek. Możesz preferować ttf-mscorefonts-installer.
- Po dodaniu wszystkich wymaganych zależności napisz prosty program, który tworzy elipsę i zapisuje ją jako obraz:
public static class Function1
{
[FunctionName("convert")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("Funkcja wyzwalania HTTP w C# przetworzyła żądanie.");
try
{
using (var image = (CadImage)Image.Load(req.Body))
{
var ms = new MemoryStream();
image.Save(ms, new PngOptions());
ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin);
return new FileContentResult(ms.ToArray(), "application/octet-stream")
{
FileDownloadName = "Export.png"
};
}
}
catch (Exception e)
{
return new OkObjectResult(e.Message);
}
}
}
Konfigurowanie pliku Dockerfile
Kolejnym krokiem jest utworzenie i skonfigurowanie pliku Dockerfile w głównym folderze projektu.
- Utwórz plik Dockerfile i umieść go obok pliku rozwiązań swojej aplikacji. Zachowaj tę nazwę pliku bez rozszerzenia (domyślnie).
- W pliku Dockerfile, określ:
FROM mcr.microsoft.com/azure-functions/dotnet:4 AS base
WORKDIR /home/site/wwwroot
RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y libgdiplus
RUN apt-get install -y libc6-dev
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Aspose.CAD.Function/Aspose.CAD.Function.csproj", "Aspose.CAD.Function/"]
RUN dotnet restore "Aspose.CAD.Function/Aspose.CAD.Function.csproj"
COPY . .
WORKDIR "/src/Aspose.CAD.Function"
RUN dotnet build "Aspose.CAD.Function.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Aspose.CAD.Function.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /home/site/wwwroot
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
Powyższy plik Dockerfile jest prosty i zawiera następujące instrukcje:
- Używany obraz SDK. Tutaj jest to obraz .NET 6. Docker pobierze go podczas uruchamiania budowy. Wersja SDK jest określona jako tag.
- Następnie może być konieczne zainstalowanie czcionek, ponieważ obraz SDK zawiera bardzo mało czcionek. Możesz także użyć lokalnych czcionek skopiowanych do obrazu dockera.
- Katalog roboczy, który jest określony w następnej linii.
- Komenda do skopiowania wszystkiego do kontenera, opublikowania aplikacji i określenia punktu wejścia.
Docker Hub
- Zaloguj się na Docker Hub
- Utwórz publiczne repozytorium
Budowanie i uruchamianie aplikacji w Docker
Teraz aplikację można zbudować i uruchomić w Dockerze. Otwórz ulubiony wiersz poleceń, przejdź do folderu z aplikacją (folder, w którym znajduje się plik rozwiązań i plik Dockerfile) i uruchom następujące polecenie:
//przykład
docker build -t <nazwa użytkownika>/<nazwa repozytorium> .
docker build -t użytkownik/asposefunction .
Pierwszy raz, gdy uruchomisz to polecenie, może zająć więcej czasu, ponieważ Docker musi pobrać niezbędne obrazy. Po zakończeniu poprzedniego polecenia uruchom następujące polecenie, aby przesłać obraz do docker hub:
//przykład
docker push <nazwa użytkownika>/<nazwa repozytorium>:tagname
docker push użytkownik/asposefunction:latest
Azure
- Zaloguj się do Azure.
- Wybierz usługi Azure.
- Wybierz aplikację funkcji i utwórz funkcję.
- Powtórz podstawowe ustawienia jak na obrazku poniżej.
- Kliknij ‘Przejrzyj + utwórz’ -> Utwórz.
- Poczekaj na zakończenie wdrażania.
- Kliknij przycisk ‘Przejdź do zasobu’.
- Zatrzymaj funkcję aspose-cad-docker-example.
- Przejdź do menu centrum wdrażania i wprowadź odpowiednie ustawienia.
- Zapisz ustawienia
- Skopiuj adres URL webhooka z ustawień centrum wdrażania.
- Przejdź do Docker Hub, wybierz swoje repozytorium i wybierz webhooks.
- Wklej ‘Adres URL webhooka’ z Azure do adresu URL webhooka Docker Hub i ustaw nazwę.
- Kliknij przycisk utwórz.
- Wróć do przeglądu funkcji Azure i uruchom kontener.
Przykład wykonania
- Ustawienia Postmana.
- Wybierz dowolny plik DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Kliknij przycisk wyślij.
Więcej przykładów
Aby uzyskać więcej próbek pokazujących, jak można używać Aspose.CAD w Dockerze, zobacz przykłady.
Zobacz także
- Zainstaluj Docker Desktop na Windows
- Zainstaluj Docker Desktop na Mac
- Visual Studio 2022, SDK NET 6
- Przełącz na kontenery Linux opcja
- Dodatkowe informacje na temat .NET Core SDK