Come Eseguire l'immagine Docker di Aspose.CAD in Azure Function
Requisiti
- Docker deve essere installato sul tuo sistema. Per informazioni su come installare Docker su Windows o Mac, fai riferimento ai link nella sezione “Vedi anche”.
- Visual Studio 2022.
- NET 6 SDK è utilizzato nell’esempio.
- Postman
Azure Function
In questo esempio, crei una semplice funzione di conversione che converte un file CAD e lo salva come immagine. L’applicazione può quindi essere costruita in Docker e eseguita in Azure Function.
Creazione della Azure Function
Per creare il programma Azure Function, segui i passaggi qui sotto:
- Una volta installato Docker, assicurati che utilizzi i contenitori Linux (default). Se necessario, seleziona l’opzione Passa a contenitori Linux dal menu di Docker Desktop.
- In Visual Studio, crea una Azure Function NET 6.
- Informazioni aggiuntive.
- Installa l’ultima versione di Aspose.CAD da NuGet.
- Poiché l’applicazione verrà eseguita su Linux, potrebbe essere necessario installare caratteri aggiuntivi. Puoi preferire ttf-mscorefonts-installer.
- Quando tutte le dipendenze richieste sono state aggiunte, scrivi un semplice programma che crea un’ellisse e la salva come immagine:
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("La funzione di trigger HTTP C# ha elaborato una richiesta.");
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);
}
}
}
Configurazione di un Dockerfile
Il passo successivo è creare e configurare il Dockerfile nella cartella principale del progetto.
- Crea il Dockerfile e posizionalo accanto al file di soluzione della tua applicazione. Mantieni questo nome di file senza estensione (il default).
- Nel Dockerfile, specifica:
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
Quello sopra è un semplice Dockerfile, che contiene le seguenti istruzioni:
- L’immagine SDK da utilizzare. Qui è l’immagine Net 6. Docker la scaricherà quando verrà eseguita la build. La versione dell’SDK è specificata come tag.
- Dopo, potrebbe essere necessario installare i caratteri perché l’immagine SDK contiene pochissimi caratteri. Inoltre, puoi utilizzare caratteri locali copiati nell’immagine Docker.
- La directory di lavoro, che è specificata nella riga successiva.
- Il comando per copiare tutto nel contenitore, pubblicare l’applicazione e specificare il punto di ingresso.
Docker Hub
- Accedi a Docker Hub
- Crea un repository pubblico
Costruzione ed Esecuzione dell’Applicazione in Docker
Ora l’applicazione può essere costruita ed eseguita in Docker. Apri il tuo prompt dei comandi preferito, cambia directory nella cartella con l’applicazione (la cartella dove si trova il file di soluzione e il Dockerfile) e esegui il seguente comando:
//esempio
docker build -t <nome utente>/<nome repository> .
docker build -t user/asposefunction .
La prima volta che esegui questo comando, potrebbe richiedere più tempo poiché Docker deve scaricare le immagini necessarie. Dopo che il comando precedente è stato completato, esegui il seguente comando per inviare l’immagine su Docker Hub:
//esempio
docker push <nome utente>/<nome repository>:tagname
docker push user/asposefunction:latest
Azure
- Accedi ad Azure.
- Scegli i servizi Azure.
- Scegli Function App e crea una funzione.
- Ripeti le impostazioni di base come nell’immagine qui sotto.
- Fai clic su ‘Rivedi + crea’ -> Crea.
- Attendi il completamento del deployment.
- Fai clic sul pulsante ‘Vai alla risorsa’.
- Ferma la funzione aspose-cad-docker-example.
- Vai al menu del centro di distribuzione e fai le impostazioni appropriate.
- Salva le impostazioni
- Copia l’URL del Webhook dalle impostazioni del centro di distribuzione.
- Vai su Docker Hub, seleziona il tuo repository e seleziona webhooks.
- Incolla l’URL del ‘Webhook’ da Azure nell’URL del webhook di Docker Hub e imposta il nome.
- Fai clic sul pulsante di creazione.
- Torna alla panoramica della funzione azure e avvia il contenitore.
Esempio di Esecuzione
- Impostazioni di Postman.
- Seleziona qualsiasi file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Fai clic sul pulsante invia.
Altri Esempi
Per ulteriori esempi su come puoi utilizzare Aspose.CAD in Docker, vedi gli esempi.
Vedi Anche
- Installa Docker Desktop su Windows
- Installa Docker Desktop su Mac
- Visual Studio 2022, NET 6 SDK
- Passa a contenitori Linux opzione
- Informazioni aggiuntive su .NET Core SDK