So führen Sie das Aspose.CAD-Docker-Image in Azure Functions aus

Voraussetzungen

  • Docker muss auf Ihrem System installiert sein. Informationen zur Installation von Docker auf Windows oder Mac finden Sie in den Links im Abschnitt “Siehe auch”.
  • Visual Studio 2022.
  • NET 6 SDK wird im Beispiel verwendet.
  • Postman

Azure-Funktion

In diesem Beispiel erstellen Sie eine einfache konvertierende Funktion, die eine CAD-Datei konvertiert und als Bild speichert. Die Anwendung kann dann in Docker gebaut und in Azure Functions ausgeführt werden.

Erstellen der Azure-Funktion

Um das Azure-Funktionsprogramm zu erstellen, folgen Sie den folgenden Schritten:

  1. Stellen Sie sicher, dass Docker installiert ist und Linux-Container (Standard) verwendet werden. Wenn nötig, wählen Sie die Option “Zu Linux-Containern wechseln” im Menü Docker Desktop.
  2. Erstellen Sie in Visual Studio eine NET 6 Azure-Funktion.
    Dialog für ein NET 6 Azure-Funktionsprojekt
  3. Zusätzliche Informationen.
    Dialog für ein NET 6 Azure-Funktionsprojekt
  4. Installieren Sie die neueste Aspose.CAD-Version von NuGet.
    Aspose.CAD auf NuGet
  5. Da die Anwendung auf Linux ausgeführt wird, müssen Sie möglicherweise zusätzliche Schriftarten installieren. Sie könnten den ttf-mscorefonts-installer bevorzugen.
  6. Wenn alle erforderlichen Abhängigkeiten hinzugefügt wurden, schreiben Sie ein einfaches Programm, das eine Ellipse erstellt und als Bild speichert:
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("C# HTTP-Triggerfunktion verarbeitet eine Anfrage.");
        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);
        }
    }
}

Konfigurieren eines Dockerfiles

Der nächste Schritt ist, das Dockerfile im Stammverzeichnis des Projekts zu erstellen und zu konfigurieren.

  1. Erstellen Sie das Dockerfile und platzieren Sie es neben der Lösungsdatei Ihrer Anwendung. Behalten Sie diesen Dateinamen ohne Erweiterung (Standard). Stammprojektordner
  2. Geben Sie im Dockerfile Folgendes an:
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

Das obige ist ein einfaches Dockerfile, das die folgenden Anweisungen enthält:

  • Das zu verwendende SDK-Image. Hier ist es das Net 6-Image. Docker wird es herunterladen, wenn der Build ausgeführt wird. Die Version des SDK wird als Tag angegeben.
  • Danach müssen Sie möglicherweise Schriftarten installieren, da das SDK-Image nur sehr wenige Schriftarten enthält. Sie können auch lokale Schriftarten verwenden, die in das Docker-Image kopiert wurden.
  • Das Arbeitsverzeichnis, das in der nächsten Zeile angegeben wird.
  • Der Befehl zum Kopieren aller Dateien in den Container, die Anwendung zu veröffentlichen und den Einstiegspunkt anzugeben.

Docker Hub

  1. Anmelden bei Docker Hub
  2. Öffentliches Repository erstellen

Erstellen und Ausführen der Anwendung in Docker

Jetzt kann die Anwendung in Docker erstellt und ausgeführt werden. Öffnen Sie Ihre bevorzugte Eingabeaufforderung, wechseln Sie in das Verzeichnis des Ordners mit der Anwendung (Ordner, in dem die Lösungsdatei und das Dockerfile platziert sind) und führen Sie den folgenden Befehl aus:

//Beispiel
docker build -t <benutzername>/<repositoryname> .

docker build -t benutzer/asposefunction .

Beim ersten Ausführen dieses Befehls kann es länger dauern, da Docker die erforderlichen Images herunterladen muss. Nachdem der vorherige Befehl abgeschlossen ist, führen Sie den folgenden Befehl aus, um das Image in den Docker Hub zu pushen:

//Beispiel
docker push <benutzername>/<repositoryname>:tagname

docker push benutzer/asposefunction:latest

Azure

  1. Anmelden bei Azure.
  2. Wählen Sie Azure-Dienste aus.
  3. Wählen Sie App Function aus und erstellen Sie eine Funktion.
    Azure-Funktionstasten
  4. Wiederholen Sie die Grundeinstellungen wie im Bild unten.
    Einstellungen zur Erstellung einer Azure-Funktion
  5. Klicken Sie auf ‘Überprüfen + erstellen’ -> Erstellen.
  6. Warten Sie, bis die Bereitstellung abgeschlossen ist.
  7. Klicken Sie auf die Schaltfläche ‘Gehe zu Ressource’.
    Ressourcenschaltfläche
  8. Stoppen Sie die Funktion aspose-cad-docker-example.
    Container stoppen
  9. Gehen Sie zum Menü Bereitstellungscenter und treffen Sie die entsprechenden Einstellungen.
    Bereitstellungszentrum
  10. Einstellungen speichern
  11. Kopieren Sie die Webhook-URL aus den Einstellungen des Bereitstellungscenters.
    Webhook-URL
  12. Gehen Sie zu Docker Hub, wählen Sie Ihr Repository aus und wählen Sie Webhooks.
  13. Fügen Sie die ‘Webhook-URL’ von Azure in die Webhook-URL von Docker Hub ein und geben Sie den Namen an.
    Webhook-Einstellungen in Docker
  14. Klicken Sie auf die Schaltfläche Erstellen.
  15. Kehren Sie zur Übersicht der Azure-Funktion zurück und starten Sie den Container.
    Übersichtsmenü

Ausführungsbeispiel

  1. Postman-Einstellungen.
    Übersichtsmenü
  2. Wählen Sie eine beliebige DXF-, DWG-, DGN-, DWF-, DWFX-, IFC-, STL-, DWT-, IGES-, PLT-, CF2-, OBJ-, HPGL-, IGS-, PCL-, FBX-, PDF-, SVG-Datei.
  3. Klicken Sie auf die Schaltfläche Senden.

Weitere Beispiele

Für weitere Beispiele, wie Sie Aspose.CAD in Docker verwenden können, siehe die Beispiele.

Siehe auch