Installation du gestionnaire d'albums

Installation et configuration du CMS Gestion des albums

Télécharger la pile

git clone https://github.com/yapawa/albumsManager.git
cd albumsManager
nvm use
npm ci

Nom du project

Le nom du projet (projectName) est seulement utilisé pour nommer le projet Cloudformation.

Le nom par défaut YapawaManager peut être changé en remplaçant projectName dans amplify/.config/project-config.json.

Initialiser Amplify

Répondez aux questions.

Quand vous êtes demandés à propos de Cognito Lambda Trigger: répondez non.

Sinon, utiliser les valeurs par défaut proposées.

amplify init

Ajouter la configuration d’hébergement manquante

On va utiliser S3 et Cloudfront pour héberger notre CMS et pas la Console Amplify. L’hébergement S3 ne permet de configurer un CNAME et des certificats lors de la configuration par Amplify. On doit l’ajouter manuellement à notre configuration.

Éditez amplify/team-provider-info.json. Sous prod.categories ajoutez une entrée pour hosting, et remplacez les valeurs ci-dessous avec les correctes:

{
  "prod": {
    "awscloudformation": {
      ...
    },
    "categories": {
      ...,
      "hosting": {
        "S3AndCloudFront": {
          "domainName": "admin.gallery.example.com",
          "hostedZoneId": "XXXXXXXXXX",
          "certificateArn": "arn:aws:acm:us-east-1:abcdef:certificate/yyyyyyy"
        }
      }
    }
  }
}

Créez un fichier .env et défionissez le domaine qui sera utilisé pour le redimensionnement des images (la variable cacheDomain). Décidez aussi si vous voulez utiliser S3 Transfer Acceleration quand vous chargez vos images:

cacheDomain=img.gallery.example.com
transferAcceleration=true

Création de la pile et déployer le code

Dites à Amplify de publier votre site. Amplify va automatiquement provisionner l’infrastructure nécessaire.

amplify publish -c --yes
  • -c informe Cloudfront de vider son cache. Vous devez encore effacer le cache de votre navigateur manuellement.
  • --yes informe Amplify de répondre oui à toutes questions.

Soyez patient, cela va prendre un peu de temps. Spécialement en raison de la création de la distribution Cloudfront.

Ouvrez src/aws-exports.js et sauvegardez quelque part la valeur de aws_user_files_s3_bucket, vous en aurez besoin quand vous installez le redimensionnement d’images.

Ouvrez src/aws-exports.js et sauvegardez quelque part la valeur de aws_user_pools_web_client_id, vous en aurez besoin quand vous installez le site publique.

qu’est-ce qui est crée ?

  • Cognito User Pool
  • Cognito Federated Identity
  • Appsync Endpoint
  • Table DynamoDB pour les albums
  • Table DynamoDB pour les images
  • Fonctions Lambda:
    • Lecteur Exif
    • Déclencheur du générateur JSON
    • Construire JSON: arbre des albums
    • Construire JSON: détails des albums
    • Lancer la génération du site publique
    • Rotation des images
  • S3 Bucket pour le stockage des images
  • S3 Bucket pour l’hébergement
    • Déclenche Lambda Exif Reader sur un PutObject
  • Route53 CNAME
  • Distribution Cloudfront pour l’hébergement
  • Event Bridge: pour déclencher la création du sute publique

Créer un utilisateur

Ouvrez votre navigateur et allez sur la console Cognito.

Ouvrez le User Pool crée et ajoutez un nouvel utilisateur. Cet utilisateur sera le gérant des albums et des images.

Suivant

Dernière modification May 26, 2020: Add -c option to publish (206ee36)