Diffuser des fichiers statiques

Les applications doivent souvent diffuser des fichiers statiques, tels que des fichiers JavaScript, des fichiers images et des fichiers CSS, en plus de gérer les requêtes dynamiques. Les applications de l'environnement flexible peuvent diffuser des fichiers statiques à partir d'un service Google Cloud Platform tel que Cloud Storage, les diffuser directement ou utiliser un réseau de diffusion de contenu (CDN) tiers.

Diffuser des fichiers depuis Cloud Storage

Cloud Storage peut héberger des éléments statiques pour des applications Web dynamiques. Voici quelques-uns des avantages à utiliser Cloud Storage au lieu de diffuser directement depuis votre application :

  • Cloud Storage fonctionne essentiellement comme un réseau de diffusion de contenu. Cette méthode ne nécessite aucune configuration spéciale, car, par défaut, tout objet lisible publiquement est mis en cache dans le réseau mondial de Cloud Storage.
  • La charge de votre application se trouve réduite lorsque la diffusion des éléments statiques est effectuée par le biais de Cloud Storage. Suivant le nombre d'éléments statiques à diffuser et la fréquence d'accès, cela peut réduire considérablement le coût d'exécution de l'application.
  • Les frais d'utilisation de la bande passante pour l'accès aux contenus sont souvent moins élevés avec Cloud Storage.

Vous pouvez importer vos éléments dans Cloud Storage à l'aide du SDK Cloud ou de l'API Cloud Storage.

La bibliothèque cliente Google Cloud fournit un client Go idiomatique pour Cloud Storage, ce qui vous permet de stocker et de récupérer des données avec Cloud Storage dans une application App Engine.

Exemple de diffusion à partir d'un bucket Cloud Storage

Cet exemple simple crée un bucket Cloud Storage et importe des éléments statiques à l'aide du SDK Cloud :

  1. Créez un bucket. Il est courant, mais pas obligatoire, de nommer le bucket d'après l'ID de votre projet. Le nom du bucket doit être unique.

    gsutil mb gs://<your-bucket-name>
    
  2. Configurez la LCA pour qu'elle accorde l'accès en lecture aux éléments du bucket.

    gsutil defacl set public-read gs://<your-bucket-name>
    
  3. Importez des éléments de contenu dans le bucket. La commande rsync est généralement le moyen le plus rapide et le plus simple d'importer et de mettre à jour des éléments. Vous pouvez également utiliser cp.

    gsutil -m rsync -r ./static gs://<your-bucket-name>/static
    

Vous pouvez maintenant accéder à vos éléments statiques via https://storage.googleapis.com/<your-bucket-name>/static/....

Pour plus d'informations sur l'utilisation de Cloud Storage pour la diffusion d'éléments statiques, y compris à partir d'un nom de domaine personnalisé, consultez la page Héberger un site Web statique.

Diffuser des fichiers à partir d'autres services GCP

Vous avez également la possibilité d'utiliser Cloud CDN ou d'autres services de stockage GCP.

Diffuser des fichiers directement depuis votre application

Diffuser des fichiers depuis une application est généralement simple. Cependant, vous devez tenir compte de quelques inconvénients :

  • Les requêtes sur les fichiers statiques peuvent utiliser des ressources normalement prévues pour les requêtes dynamiques.
  • Selon la configuration que vous utilisez, la diffusion de fichiers depuis une application peut générer une latence de réponse, ce qui peut également ralentir la création d'instances destinées à supporter la charge de travail.

Conseil : Dans les environnements de production, il est généralement recommandé de diffuser le contenu statique indépendamment de l'application, que ce soit dans GCP ou en externe à l'aide d'un CDN tiers.

Exemple de diffusion de fichiers statiques avec une application

Dans l'environnement Go, vous pouvez utiliser les commandes standards http.FileServer ou http.ServeFile pour diffuser des fichiers directement à partir de votre application.


// Package static demonstrates a static file handler for App Engine flexible environment.
package main

import (
	"fmt"
	"net/http"

	"google.golang.org/appengine"
)

func main() {
	// Serve static files from "static" directory.
	http.Handle("/static/", http.FileServer(http.Dir(".")))

	http.HandleFunc("/", homepageHandler)
	appengine.Main()
}

const homepage = `<!doctype html>
<html>
<head>
  <title>Static Files</title>
  <link rel="stylesheet" type="text/css" href="/static/main.css">
</head>
<body>
  <p>This is a static file serving example.</p>
</body>
</html>`

func homepageHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, homepage)
}

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement flexible App Engine pour Go