Comment exécuter l'image Docker Aspose.CAD dans Azure Function

Prérequis

  • Docker doit être installé sur votre système. Pour des informations sur l’installation de Docker sur Windows ou Mac, consultez les liens dans la section « Voir aussi ».
  • Visual Studio 2022.
  • Le SDK .NET 6 est utilisé dans l’exemple.
  • Postman

Fonction Azure

Dans cet exemple, vous créez une fonction de conversion simple qui convertit un fichier CAD et l’enregistre sous forme d’image. L’application peut ensuite être construite dans Docker et exécutée dans Azure Function.

Création de la fonction Azure

Pour créer le programme de fonction Azure, suivez les étapes ci-dessous :

  1. Une fois Docker installé, assurez-vous qu’il utilise les conteneurs Linux (par défaut). Si nécessaire, sélectionnez l’option Passer aux conteneurs Linux dans le menu Docker Desktops.
  2. Dans Visual Studio, créez une fonction Azure NET 6.
    Une boîte de dialogue de projet Azure Function NET 6
  3. Informations supplémentaires.
    Une boîte de dialogue de projet Azure Function NET 6
  4. Installez la dernière version d’Aspose.CAD depuis NuGet.
    Aspose.CAD sur NuGet
  5. Étant donné que l’application sera exécutée sur Linux, vous devrez peut-être installer des polices supplémentaires. Vous pouvez préférer ttf-mscorefonts-installer.
  6. Lorsque toutes les dépendances requises sont ajoutées, écrivez un programme simple qui crée une ellipse et l’enregistre sous forme d’image :
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 trigger function processed a request.");
        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);
        }
    }
}

Configuration d’un Dockerfile

La prochaine étape consiste à créer et configurer le Dockerfile dans le dossier racine du projet.

  1. Créez le Dockerfile et placez-le à côté du fichier de solution de votre application. Gardez ce nom de fichier sans extension (par défaut). Dossier racine du projet
  2. Dans le Dockerfile, spécifiez :
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

Ce qui précède est un Dockerfile simple, qui contient les instructions suivantes :

  • L’image SDK à utiliser. Ici, c’est l’image .NET 6. Docker la téléchargera lorsque la construction sera exécutée. La version du SDK est spécifiée comme un tag.
  • Ensuite, vous devrez peut-être installer des polices car l’image SDK contient très peu de polices. De plus, vous pouvez utiliser des polices locales copiées dans l’image Docker.
  • Le répertoire de travail, qui est spécifié dans la ligne suivante.
  • La commande pour copier tout dans le conteneur, publier l’application et spécifier le point d’entrée.

Docker Hub

  1. Connexion à Docker Hub
  2. Créez un dépôt public

Construction et exécution de l’application dans Docker

Maintenant, l’application peut être construite et exécutée dans Docker. Ouvrez votre invite de commande préférée, changez de répertoire vers le dossier avec l’application (dossier où le fichier de solution et le Dockerfile sont placés) et exécutez la commande suivante :

//exemple
docker build -t <nom d'utilisateur>/<nom du dépôt> .

docker build -t user/asposefunction .

La première fois que vous exécutez cette commande, cela peut prendre plus de temps car Docker doit télécharger les images nécessaires. Une fois la commande précédente terminée, exécutez la commande suivante pour pousser l’image vers docker hub :

//exemple
docker push <nom d'utilisateur>/<nom du dépôt>:tagname

docker push user/asposefunction:latest

Azure

  1. Connexion à Azure.
  2. Choisissez les services Azure.
  3. Choisissez Function App et créez une fonction.
    Bouton créer une fonction Azure
  4. Répétez les paramètres de base comme dans l’image ci-dessous.
    Paramètres de création de fonction Azure
  5. Cliquez sur ‘Examiner + créer’ -> Créer.
  6. Attendez que le déploiement se termine.
  7. Cliquez sur le bouton ‘Accéder à la ressource’.
    Bouton Ressource
  8. Arrêtez la fonction aspose-cad-docker-example.
    Arrêter le conteneur
  9. Allez dans le menu du centre de déploiement et faites les réglages appropriés.
    Centre de déploiement
  10. Enregistrez les paramètres
  11. Copiez l’URL du Webhook des paramètres du centre de déploiement.
    URL du Webhook
  12. Allez sur Docker Hub, sélectionnez votre dépôt et sélectionnez les webhooks.
  13. Collez l’URL du ‘Webhook’ d’Azure dans l’URL du webhook Docker Hub et définissez le nom.
    Paramètres du webhook dans Docker
  14. Cliquez sur le bouton créer.
  15. Retournez au menu de synthèse de la fonction Azure et démarrez le conteneur.
    Menu de synthèse

Exemple d’exécution

  1. Paramètres de Postman.
    Paramètres de Postman
  2. Sélectionnez n’importe quel fichier DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Cliquez sur le bouton envoyer.

Autres exemples

Pour plus d’exemples sur la façon d’utiliser Aspose.CAD dans Docker, consultez les exemples.

Voir aussi