2
votes

Azure crée le service d'application le plus basique pour servir des fichiers statiques avec ou sans nœud via le portail

Je ne sais pas trop comment fonctionne App Service en interne. J'explorais cela et je voulais créer un service d'application simple via le portail pour servir des fichiers statiques, mais je n'ai trouvé qu'un didacticiel qui utilise un shell, et non le portail Azure, qui nécessite également des services tels que le stockage dont je n'ai pas besoin.

Voici ce que j'ai essayé:

  1. Vous avez obtenu un abonnement et créé une ressource associée à l'abonnement d'essai gratuit
  2. Créez un App Service, basique (gratuit) sur Linux, en utilisant un nouveau plan de service et un nouveau code Linux (pas un conteneur). Je ne peux pas choisir de pile ou d'exécution avec uniquement un serveur Web statique, donc je sélectionne Node (LTS). Je laisse la commande de démarrage vide (plus tard, je développerai cela). La version 1.1 ou 2 de Http ne semble pas faire de différence. FTP activé.
  3. La ressource est correctement créée, je peux voir le web de démarrage d'hébergement typique page d'accueil
  4. Je me connecte à SFTP et je peux voir que j'ai un chemin site / wwwroot avec un seul fichier hébergementstart.html qui ressemble exactement à la page d'accueil sur la capture d'écran que je vois lorsque j'accède au site Web URL. Je pense en moi-même: "super! Je peux simplement éditer ce html et je devrais voir le résultat". Faux. Il ne semble pas que ce soit le html servi. Je ne sais pas pourquoi il est là, mais si je le supprime, je vois toujours la même page de destination sur l'URL de mon site.
  5. Je crée un site / wwwroot / index.html mais pas de chance. Il n'est pas servi. Peut-être que Node n'est pas configuré par défaut pour le faire.
  6. Je crée un simple server.js capable de servir statiquement n'importe quel fichier: https: / /github.com/TheJaredWilcurt/NPM-Free-Server Donc j'utilise FTP pour placer un site / wwwroot / server.js et je laisse un index.html (dans mon localhost ça marche :)).
  7. Je configure dans App Service une commande initiale comme node server.js pour qu'il puisse exécuter et servir la page et je redémarre le serveur. Rien, aucun effet.
  8. Je peux voir sur les journaux que mon server.js est en cours d'exécution. Je peux voir une trace qui indique qu'il fonctionne sur localhost: 8000

À ce stade, cela fait plusieurs heures d'enquêter sans succès. Ça ne peut pas être si difficile! Je trouve la question suivante étonnamment sans réponse: https://github.com / MicrosoftDocs / azure-docs / issues / 32572 # issuecomment-551053105

Quelqu'un pourrait-il nous éclairer là-dessus? Je suis ouvert aux suggestions. Mon objectif est le suivant: avoir (uniquement) un App Service diffusant un index.html statique avec un monde Hello créé via le portail .

Ta!

MISE À JOUR 1 : Merci à https://stackoverflow.com/users/188096/gaurav -mantri pour sa suggestion. Mais j'aimerais insister sur le fait que App Service est requis car il est à des fins de formation et j'aimerais passer d'une application dynamique très basique à une application dynamique plus complexe avec le même service et un déploiement continu. < / p>


0 commentaires

3 Réponses :


3
votes

Si vous vous souciez uniquement d'héberger du contenu statique et pas de code côté serveur, jetez un œil à l'hébergement de sites Web statiques dans Azure Storage: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website . Vous n'avez pas vraiment besoin de créer un service d'application pour cela.


1 commentaires

Merci, mais j'ai besoin d'App Service :) Le plan est de commencer avec du contenu purement statique, d'ajouter du javascript et du css, puis une exécution javascript côté serveur, etc. Je ne connaissais pas le serveur statique, merci! mais si cela ne vous dérange pas, je mettrai à jour la question et clarifierai qu'App Service fait partie de l'objectif.



1
votes

@iberodev J'ai déployé une application svelte sur le service d'application. J'ai utilisé le centre de déploiement. Comme vous l'avez fait, j'ai marqué l'application comme application Node 10.

Le pipeline de déploiement Azure a exécuté les commandes npm run build et npm run start après avoir engendré un conteneur docker (du moins je pense en regardant les fichiers journaux sur plusieurs endroits.)

"start": "sirv public --single -H 0.0.0.0" fonctionne très bien

"start": "sirv public" , c'est la commande de démarrage du modèle svelte original, cela fait échouer le démarrage du conteneur docker.

Ce sont mes expérimentations jusqu'à présent.

Je pense mais je ne suis pas sûr; Azure exécutera la commande start dans package.json , de cette façon mon application de démonstration fonctionne.

La commande sirv vient de sirv-cli dans package.json.

Vous pouvez essayer d'autres serveurs de fichiers statiques comme serve si vous le souhaitez.

De cette façon, vous pouvez développer et vous engager par étapes pour avoir une application qui s'améliore progressivement.

Je ne suis pas sûr des performances des commandes sirv en tant que serveur Web pour prod. Mais vous avez mentionné que c'était à des fins de formation, il conviendra.

package.json

{
  "name": "svelte-app",
  "version": "1.0.0",
  "scripts": {
    "build": "rollup -c",
    "dev": "rollup -c -w",
    "start": "sirv public --single -H 0.0.0.0"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^11.0.0",
    "@rollup/plugin-node-resolve": "^7.0.0",
    "rollup": "^1.20.0",
    "rollup-plugin-livereload": "^1.0.0",
    "rollup-plugin-svelte": "^5.0.3",
    "rollup-plugin-terser": "^5.1.2",
    "svelte": "^3.0.0"
  },
  "dependencies": {
    "sirv-cli": "^0.4.4"
  }
}


1 commentaires

Merci pour le pointeur. J'essaye de mettre une application svelte dans un conteneur docker. Si vous avez le temps, j'aimerais découvrez plus de détails sur la façon dont vous l'avez fait!



0
votes

J'ai rencontré le même problème et je n'ai pas été en mesure de comprendre pourquoi les applications Web nouvellement créées n'utilisent pas directement les fichiers hébergementstart.html. Cela est vrai dans de nombreuses configurations de piles technologiques différentes. Cependant, j'ai créé une application Web HTML statique (css et js inclus) dans Azure en utilisant ces étapes .

Cela a créé une application Web basée sur .Net, qui n'était pas disponible sur le portail. Il y avait des options en particulier sur les pages par défaut, etc. J'ai maintenant réutilisé cette application Web pour démarrer le projet à partir de zéro et continuer à construire dessus. J'espère que cela t'aides.


0 commentaires