Installation du gestionnaire d'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
Déploiements multiples
Si vous voulez déploier plusieurs piles dans le même compte AWS, vous pouvez utiliser plusieurs environnements.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
Plusieurs déploiements
Si vous utiliser plusieurs piles dans le meme compte AWS, vous devez éditer.env avant de
If you are using several stacks in the same AWS account, you need to edit .env avant de déployer chacun d’eux.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
-cinforme Cloudfront de vider son cache. Vous devez encore effacer le cache de votre navigateur manuellement.--yesinforme 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.
Préparation de S3
Si vous utilisez un autre région que us-east-1, votre domaine ne sera pas accessible de suite. Vous devrez attendre jusqu’à une heure pour que la redondance de S3 soit prête. Si vous essayzer d’accéder le domaine, vous serez redirigé vers le domaine du bucket S3. Ceci est une limitation connue d’AWS, rien ne peut être fait.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.