Déployer un site ASP .net Core 3 sur Azure

Aujourd’hui, utiliser .net Core 3 sur Azure est possible. Cependant, le runtime de .net Core 3 n’étant pas déployé sur toutes les plateformes, il faut s’adapter.

Cet article résume les solutions pour les contextes:

  • PASS (App Service).
  • Container (Azure Kubernetes Services).
  • IAAS (Azure Virtual Machines).

Côté PAAS (App Services)

Pour que votre application ne dépende plus du runtime, il est possible de lui faire embarquer l’intégralité des dépendances utiles. Il s’agit du Self-Contained Deployments (SCD) décrit ici.

Avec Visual Studio

Si vous utiliser Visual Studio pour publier votre site, il suffit de modifier le profil de déploiement.

Le Deployment mode doit être sur Self-Contained.

Formulaire d'édition du profil de déploiement


Vous pouvez aussi modifier manuellement votre fichier .pubxml pour y inclure un nœud SelfContained contenant true.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <!--
        ...
    -->
    <SelfContained>true</SelfContained>
    <RuntimeIdentifier>win-x86</RuntimeIdentifier>
  </PropertyGroup>
</Project>


Avec Visual Studio Code & CLI

Si vous utiliser Visual Studio Code et la CLI pour publier votre site, il faut ajouter les arguments suivants à votre commande :

--self-contained true -r win-x86

L’option win-x86 doit être modifiée si vous utilisez App Service en 64 bits ou avec Linux. La liste des identifiants possibles est disponible ici.

Ces arguments sont aussi utilisables dans Azure Pipeline. À condition d’héberger vous-même votre agent de build. Les agents hébergés par Azure n’étant pas à jour (pour le moment).

Côté Container (Azure Kubernetes Services)

Il suffit de créer vos images à partir de la dernière image ASP.NET Core Runtime en version 3 (disponible ici).

Côté IAAS (Azure Virtual Machines)

Il est possible d’utiliser l’approche du Self-Contained Deployments décrite pour le PAAS, ou d’installer le runtime sur votre serveur.

Le fait d’utiliser une machine virtuelle implique que vous vous chargiez de son administration. Il vous faudra donc déployer le runtime par vos propres moyens (manuel, script,s automation tools …).

Jérémy Jeanson

Comments

You have to be logged in to comment this post.