Jak spustit obraz Aspose.CAD Docker v Azure Function

Předpoklady

  • Na vašem systému musí být nainstalován Docker. Pokud potřebujete informace o tom, jak nainstalovat Docker na Windows nebo Mac, podívejte se na odkazy v sekci „Viz také“.
  • Visual Studio 2022.
  • V příkladu je použito NET 6 SDK.
  • Postman

Azure Function

V tomto příkladu vytvoříte jednoduchou konverzní funkci, která převede soubor CAD a uloží ho jako obrázek. Aplikace pak může být postavena v Dockeru a spuštěna v Azure Function.

Vytvoření Azure Function

Pro vytvoření programu Azure Function postupujte podle následujících kroků:

  1. Jakmile je nainstalován Docker, ujistěte se, že používá kontejnery Linux (výchozí). Pokud je to nutné, vyberte možnost „Přepnout na kontejnery Linux“ z nabídky programu Docker Desktop.
  2. V programu Visual Studio vytvořte Azure Function pro NET 6.
    Dialogové okno pro vytvoření projektu Azure Function pro NET 6
  3. Další informace.
    Dialogové okno pro vytvoření projektu Azure Function pro NET 6
  4. Nainstalujte nejnovější verzi Aspose.CAD z NuGet.
    Aspose.CAD na NuGet
  5. Protože aplikace bude spuštěna na Linuxu, může být nutné nainstalovat další písma. Můžete upřednostňovat například „ttf-mscorefonts-installer“.
  6. Jakmile jsou přidány všechny potřebné závislosti, napište jednoduchý program, který vytvoří elipsu a uloží ji jako obrázek:
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("Funkce pro zpracování požadavku HTTP v jazyce C# byla spuštěna.");
        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);
        }
    }
}

Konfigurace souboru Dockerfile

Dalším krokem je vytvoření a konfigurace souboru Dockerfile v kořenovém adresáři projektu.

  1. Vytvořte soubor Dockerfile a umístěte ho vedle souboru se řešením vaší aplikace. Uchovejte tento soubor bez přípony (výchozí). Kořenový adresář projektu
  2. Ve souboru Dockerfile určete:
FROM mcr.microsoft.com/azure-functions/dotnet:4 JAK základ
PRACOVNÍ ADRESÁŘ /domovská stránka/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 JAK postavit
PRACOVNÍ ADRESÁŘ /src
COPY ["Aspose.CAD.Function/Aspose.CAD.Function.csproj", "Aspose.CAD.Function/"]
RUN dotnet restore "Aspose.CAD.Function/Aspose.CAD.Function.csproj"
COPY . .
PRACOVNÍ ADRESÁŘ "/src/Aspose.CAD.Function"
RUN dotnet build "Aspose.CAD.Function.csproj" -c Release -o /app/build

FROM postavit JAK zveřejnit
RUN dotnet publish "Aspose.CAD.Function.csproj" -c Release -o /app/publish

FROM základna JAK konečný
PRACOVNÍ ADRESÁŘ /domovská stránka/site/wwwroot
COPY --from=publikovat /app/publish .
ENV AzureWebJobsScriptRoot=/domovská stránka/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

Výše uvedený je jednoduchý soubor Dockerfile, který obsahuje následující pokyny:

  • Obraz SDK, který se má použít. Zde je to obraz Net 6. Docker si jej stáhne při spuštění sestavení. Verze SDK je specifikována jako značka.
  • Poté můžete potřebovat nainstalovat písma, protože obraz SDK obsahuje velmi málo písem. Také můžete použít lokální písma zkopírovaná do obrazu Docker.
  • Pracovní adresář, který je uveden v dalším řádku.
  • Příkaz pro zkopírování všeho do kontejneru, publikování aplikace a specifikování vstupního bodu.

Docker Hub

  1. Přihlaste se do Docker Hub.
  2. Vytvořte veřejný Repozitář

Sestavení a Spuštění Aplikace v Dockeru

Nyní může být aplikace sestavena a spuštěna v Dockeru. Otevřete oblíbený příkazový řádek, změňte adresář na složku s aplikací (složka, kde jsou umístěny soubor se řešením a Dockerfile) a spusťte následující příkaz:

//příklad
docker build -t <uživatelské jméno>/<název repozitáře> .

docker build -t uzivatel/asposefunction .

První spuštění tohoto příkazu může trvat déle, protože Docker potřebuje stáhnout nezbytné obrazy. Po dokončení předchozího příkazu spusťte následující příkaz k odeslání obrazu do Docker Hubu:

//příklad
docker push <uživatelské jméno>/<název repozitáře>:tagname

docker push uzivatel/asposefunction:latest

Azure

  1. Přihlaste se do Azure.
  2. Vyberte služby služby Azure.
  3. Vyberte funkci App a vytvořte funkci.
    Tlačítko pro vytvoření funkce v Azure
  4. Zopakujte základní nastavení jako na následujícím obrázku.
    Nastavení vytvoření funkce v Azure
  5. Klikněte na „Zkontrolovat + vytvořit“ -> Vytvořit.
  6. Počkejte na dokončení nasazení.
  7. Klikněte na tlačítko „Přejít na zdroj“.br> Tlačítko Zdroj
  8. Zastavte funkci aspose-cad-docker-example.
    Zastavit kontejner
  9. Přejděte do nabídky centra nasazení a proveďte příslušná nastavení.
    Centrum nasazení
  10. Uložte nastavení
  11. Zkopírujte odkaz Webhooku ze nastavení centra nasazení.
    Odkaz Webhooku
  12. Přejděte na Docker Hub, vyberte váš repozitář a vyberte webové háčky.
  13. Vložte „Odkaz Webhook“ z Azure do odkazu webového háčku Docker Hub a nastavte jméno.
    Nastavení webového háčku v Dockeru
  14. Klikněte na tlačítko vytvořit.
  15. Vraťte se do přehledu Azure funkce a spusťte kontejner.
    Nabídka Přehled

Příklad spuštění

  1. Nastavení Postmanu.
    Nastavení Postmanu
  2. Vyberte libovolný soubor DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Klikněte na tlačítko odeslat.

Další příklady

Pro více vzorů, jak můžete použít Aspose.CAD v Dockeru, podívejte se na příklady.

Viz také