Création d’un projet d’Asset compute

Les projets d’Asset compute sont des projets Node.js, générés à l’aide de l’interface de ligne de commande Adobe I/O, qui adhèrent à une certaine structure qui leur permet d’être déployés à Adobe I/O Runtime et intégrés à AEM en tant que Cloud Service. Un projet d'Asset compute unique peut contenir un ou plusieurs travailleurs de l'Asset compute, chacun ayant un point de terminaison HTTP distinct référencé à partir d'un AEM en tant que Profil de traitement Cloud Service.

Générer un projet

Clic publicitaire de génération d'un projet d'Asset compute (sans audio)

Utilisez le module externe d’Asset compute de l’interface de ligne de commande d’Adobe I/O pour générer un nouveau projet d’Asset compute vide.

  1. Dans la ligne de commande, accédez au dossier contenant le projet.
  2. Dans la ligne de commande, exécutez aio app init pour commencer l'interface de ligne de commande de génération de projet interactive.
  3. Sélectionner une organisation
    • Sélectionnez l'organisation d'Adobes pour laquelle AEM en tant que Cloud Service, Project Firefly est enregistré
  4. Sélectionner le projet
    • Recherchez et sélectionnez le projet. Il s'agit du titre du projet créé à partir du modèle de projet Firefly, dans ce cas WKND AEM Asset Compute
  5. Sélectionner un espace de travail
    • Sélectionnez l'espace de travail Development
  6. Quelles fonctionnalités de l’application Adobe I/O souhaitez-vous activer pour ce projet ? Sélectionner les composants à inclure
    • Sélectionner Actions: Deploy runtime actions
    • Utilisez les touches de flèches pour sélectionner et espacer pour désélectionner/sélectionner, et la touche Entrée pour confirmer la sélection.
  7. Sélectionner le type d’actions à générer
    • Sélectionner Adobe Asset Compute Worker
    • Utilisez les touches de flèches pour sélectionner, libérer de l’espace pour désélectionner/sélectionner et Entrée pour confirmer la sélection.
  8. Comment souhaitez-vous nommer cette action ?
    • Utilisez le nom par défaut worker.
    • Si votre projet contient plusieurs collaborateurs qui effectuent différents calculs d’actifs, nommez-les sémantiquement.

Générer console.json

A partir de la racine du projet d'Asset compute nouvellement créé, exécutez la commande suivante pour générer un console.json.

$ aio app use

Vérifiez que les détails de l'espace de travail actuel sont corrects, appuyez sur Y ou saisissez pour générer un console.json. Si .env et .aio sont détectés comme existants, appuyez sur x pour ignorer leur création.

En cas de création ou de remplacement de .env, réajoutez les clés/valeurs manquantes au nouveau .env :

## please provide the following environment variables for the Asset Compute devtool. You can use AWS or Azure, not both:
#ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH=
#S3_BUCKET=
#AWS_ACCESS_KEY_ID=
#AWS_SECRET_ACCESS_KEY=
#AWS_REGION=
#AZURE_STORAGE_ACCOUNT=
#AZURE_STORAGE_KEY=
#AZURE_STORAGE_CONTAINER_NAME=

Examiner l'anatomie du projet

Le projet d'Asset compute généré est un projet Node.js pour un projet d'Adobe spécialisé Firefly, et les éléments suivants sont propres au projet d'Asset compute :

  • /actions contient des sous-dossiers et chaque sous-dossier définit un agent d’Asset compute.
    • /actions/<worker-name>/index.js définit le script JavaScript exécuté pour effectuer le travail de ce collaborateur.
      • Le nom de dossier worker est un nom par défaut et peut être n’importe quoi, tant qu’il est enregistré dans manifest.yml.
      • Au besoin, plusieurs dossiers de travail peuvent être définis sous /actions, mais ils doivent être enregistrés dans manifest.yml.
  • /test/asset-compute contient les suites de tests pour chaque programme de travail. Tout comme le dossier /actions, /test/asset-compute peut contenir plusieurs sous-dossiers, chacun correspondant au programme de travail testé.
    • /test/asset-compute/worker, qui représente une suite de tests pour un travailleur spécifique, contient des sous-dossiers représentant un cas de test spécifique, ainsi que l’entrée de test, les paramètres et la sortie attendue.
  • /build contient la sortie, les journaux et les artefacts des exécutions de cas de test d’Asset compute.
  • /manifest.yml définit les employés d'Asset compute fournis par le projet. Chaque implémentation de collaborateur doit être énumérée dans ce fichier pour être mise à la disposition de l'AEM en tant que Cloud Service.
  • /console.json définit les configurations Adobe I/O
    • Ce fichier peut être généré/mis à jour à l'aide de la commande aio app use.
  • /.aio contient les configurations utilisées par l’outil d’interface de ligne de commande aio.
    • Ce fichier peut être généré/mis à jour à l'aide de la commande aio app use.
  • /.env définit des variables d’environnement dans une key=value syntaxe et contient des secrets qui ne doivent pas être partagés. Ceci peut être généré ou Pour protéger ces secrets, ce fichier ne doit PAS être archivé dans Git et est ignoré par le fichier .gitignore par défaut du projet.
    • Ce fichier peut être généré/mis à jour à l'aide de la commande aio app use.
    • Les variables définies dans ce fichier peuvent être remplacées par l'exportation de variables sur la ligne de commande.

Pour plus de détails sur l'examen de la structure du projet, consultez l'Anatomie d'un projet de luciole de projet d'Adobe.

La majeure partie du développement a lieu dans le dossier /actions qui développe les implémentations des opérateurs et dans /test/asset-compute les tests d'écriture pour les opérateurs d'Asset compute personnalisés.

Projet Asset compute sur Github

Le projet d'Asset compute final est disponible sur Github à l'adresse suivante :

Github contient l'état final du projet, entièrement renseigné avec les cas de travail et de test, mais ne contient aucune information d'identification, c'est-à-dire. .env, console.json ou .aio.

Sur cette page