Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Publier des packages sur un canal Amazon S3 Conda
Vous pouvez publier des packages conda dans un compartiment Amazon Simple Storage Service (Amazon S3) afin que les employés de AWS Deadline Cloud (Deadline Cloud) puissent les installer pour exécuter des tâches. La rattler-build publish commande fonctionne avec Amazon S3 de la même manière qu'avec un canal de système de fichiers local. La commande peut créer une recette et publier le résultat, ou publier un fichier de package que vous avez déjà créé. Dans les deux cas, la commande télécharge le package dans le bucket et indexe la chaîne en une seule étape.
La rattler-build publish commande s'authentifie à AWS l'aide de la chaîne d'informations d'identification standard. Elle utilise donc votre AWS configuration comme n'importe quel AWS outil. Pour plus d'informations sur la configuration des informations d'identification, consultez la section Configuration et paramètres du fichier d'informations d'identification dans le Guide de l'utilisateur AWS Command Line Interface (AWS CLI).
Conditions préalables
Avant de publier des packages sur Amazon S3, remplissez les conditions préalables suivantes :
-
pixi et rattler-build — Installez pixi à partir du fichier pixi.sh
sur le site Web de Pixi, puis installez-le. rattler-buildpixi global install rattler-build -
git — Obligatoire pour cloner le référentiel d'échantillons. SurWindows, git for, Windows
sur le site Web de Git pour Windows, fournit également un bashshell, dont certains Windows exemples de recettes ont besoin. -
Compartiment Amazon S3 : compartiment Amazon S3 à utiliser comme canal conda. Vous pouvez utiliser le compartiment de pièces jointes de votre ferme Deadline Cloud ou créer un compartiment distinct.
-
AWS informations d'identification : configurez les informations d'identification sur votre poste de travail à l'aide de la
aws configurecommande ou de laaws logincommande. Pour plus d'informations, consultez Configuration de AWS CLI dans le Guide de l'utilisateur AWS Command Line Interface . -
Autorisations IAM — (Facultatif) Pour réduire l'étendue des autorisations dont disposent vos informations d'identification, vous pouvez utiliser une politique Gestion des identités et des accès AWS (IAM) qui accorde uniquement les autorisations suivantes sur le compartiment Amazon S3 et le préfixe de canal que vous utilisez (par exemple,) :
/Conda/*-
s3:GetObject -
s3:PutObject -
s3:DeleteObject -
s3:ListBucket -
s3:GetBucketLocation
-
Publication d'un package sur un canal Amazon S3
À utiliser rattler-build publish avec une s3:// cible pour publier un package sur votre chaîne Amazon S3 Conda. Si le canal n'existe pas dans le compartiment, rattler-build initialise le canal automatiquement. Avant de commencer, assurez-vous d'avoir rempli les prérequis.
L'exemple suivant publie l'exemple de recette Blender 4.5 à partir du référentiel
Note
Les applications volumineuses peuvent nécessiter des dizaines de Go d'espace disque disponible pour l'archive source, les fichiers extraits et la sortie de génération. Assurez-vous d'utiliser un disque disposant de suffisamment d'espace disponible pour la sortie de compilation du package.
Pour publier un package sur un canal Amazon S3
-
Clonez le référentiel d'échantillons Deadline Cloud.
git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
Passez au répertoire
conda_recipes.cd deadline-cloud-samples/conda_recipes -
Exécutez la commande suivante. Remplacez-le
amzn-s3-demo-bucketpar le nom de votre bucket.rattler-build publish blender-4.5/recipe/recipe.yaml --to s3://amzn-s3-demo-bucket/Conda/Default --build-number=+1Le
/Conda/Defaultpréfixe organise le canal au sein du bucket. Vous pouvez utiliser un autre préfixe, mais celui-ci doit être cohérent pour toutes les commandes et configurations de file d'attente qui font référence au canal.
À propos des numéros de version
L'--build-number=+1option sélectionne automatiquement le numéro de version suivant en fonction de ce qui existe déjà dans le canal de destination. La meilleure pratique consiste à ne jamais remplacer un package dans un canal. Créez toujours avec un nouveau numéro de build si le package aurait autrement le même nom de fichier. L'utilisation --build-number=+1 permet d'atteindre cet objectif lorsque vous passez à un canal de production ou à un canal de mise en scène qui reflète la production.
Si vous souhaitez contrôler directement le numéro de version, vous pouvez le définir avec une valeur spécifique telle que--build-number=7. Si vous omettez cette option, rattler-build utilise le numéro de version défini dans le recipe.yaml fichier.
Si la recette de votre package dépend de packages provenant d'un canal particulier, comme conda-forge -c
conda-forge ajoutez-la à la commande.
Vous pouvez également publier un fichier de package que vous avez déjà créé, par exemple un .conda fichier issu d'une version locale. Remplacez-le amzn-s3-demo-bucket par le nom de votre bucket.
rattler-build publish output/linux-64/blender-4.5.0-hb0f4dca_0.conda \ --to s3://amzn-s3-demo-bucket/Conda/Default
Initialisation ou réindexation d'un canal
Lorsque vous l'utilisez rattler-build publish pour publier un package, la commande initialise automatiquement le canal s'il n'existe pas déjà. Dans la plupart des cas, il n'est pas nécessaire d'initialiser ou de réindexer le canal manuellement.
Il se peut que vous deviez initialiser ou réindexer manuellement une chaîne dans les situations suivantes :
-
Vous souhaitez créer une chaîne vide avant de publier des packages, par exemple pour vérifier que votre environnement de file d'attente Deadline Cloud peut se connecter à la chaîne.
-
Vous avez chargé ou supprimé
.condades fichiers directement à l'aide des outils Amazon S3 au lieu de les utiliserrattler-build publish, et l'index des chaînes est obsolète.
Initialisation d'un canal vide
Pour initialiser un canal vide, créez un repodata.json fichier et téléchargez-le dans le noarch sous-répertoire du préfixe du canal. Remplacez-le amzn-s3-demo-bucket par le nom de votre bucket.
echo '{"info":{"subdir":"noarch"},"packages":{},"packages.conda":{},"removed":[],"repodata_version":1}' > empty_channel_repodata.json aws s3api put-object --body empty_channel_repodata.json --key Conda/Default/noarch/repodata.json --bucketamzn-s3-demo-bucket
Le /Conda/Default préfixe doit correspondre au préfixe de canal utilisé par votre environnement de file d'attente. Après avoir initialisé la chaîne, vous pouvez publier des packages sur la chaîne à l'aide rattler-build publish de.
Réindexation d'une chaîne
Si l'index du canal est obsolète, utilisez-le rattler-index pour reconstruire l'index à partir des fichiers de package du canal. Tout d'abord, installezrattler-index.
pixi global install rattler-index
Réindexez ensuite la chaîne. Remplacez-le amzn-s3-demo-bucket par le nom de votre bucket.
rattler-index s3 s3://amzn-s3-demo-bucket/Conda/Default
Tester le package
Après avoir publié le package, créez un projet pixi temporaire pour vérifier que le package fonctionne correctement. Le projet installe le package depuis le canal Amazon S3.
Pour tester le package
-
Créez un répertoire de test temporaire et initialisez un projet pixi avec le canal Amazon S3. Remplacez-le
amzn-s3-demo-bucketpar le nom de votre bucket.mkdir package-test-env cd package-test-env pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default -
Ajoutez le package au projet.
pixi add blender=4.5 -
Vérifiez que le package fonctionne correctement.
pixi run blender --versionLa
pixi runcommande active l'environnement conda pour le répertoire du projet et exécute la commande spécifiée dans celui-ci. L'environnement persiste dans le répertoire du projet, vous pouvez donc utiliser la mêmepixi runcommande depuis d'autres terminaux. Pour plus d'informations, consultez lapixi runcommandesur le site Web de Pixi.
Supprimer des packages de la chaîne
Évitez de supprimer des packages des canaux que vous utilisez pour la production, car les fichiers de verrouillage référencent des packages spécifiques par hachage. La suppression d'un package empêche de recréer des environnements à partir de ces fichiers de verrouillage. Pour les canaux de développement et de test, vous pouvez supprimer un package spécifique en supprimant le .conda fichier du compartiment, puis en réindexant le canal.
Supprimez le fichier du package, puis réindexez la chaîne. Remplacez-le amzn-s3-demo-bucket par le nom de votre bucket.
aws s3 rm s3://amzn-s3-demo-bucket/Conda/Default/linux-64/blender-4.5.0-hb0f4dca_1.conda
Après avoir supprimé le fichier, réindexez la chaîne pour mettre à jour ses métadonnées. Pour obtenir des instructions, consultez Réindexation d'une chaîne.
Les fichiers de package sont stockés dans des sous-répertoires spécifiques à la plate-forme tels linux-64 que, ou. win-64 osx-arm64 Pour répertorier les packages dans un sous-répertoire, exécutez la commande suivante.
aws s3 ls s3://amzn-s3-demo-bucket/Conda/Default/linux-64/
Nettoyage
Après le test, supprimez le répertoire du projet de test.
Pour nettoyer les ressources de test
-
Supprimez le répertoire du projet de test.
Sur Linux etmacOS, exécutez la commande suivante.
rm -rf package-test-envSur Windows (cmd), exécutez la commande suivante.
rmdir /s /q package-test-env
Constructions de débogage
Si une compilation échoue, rattler-build préserve le répertoire de construction afin que vous puissiez l'examiner. Exécutez la commande suivante pour ouvrir un shell interactif dans l'environnement de génération avec toutes les variables d'environnement configurées telles qu'elles étaient lors de la génération.
rattler-build debug shell
À partir du shell de débogage, vous pouvez modifier des fichiers, exécuter des commandes de génération individuelles et ajouter des dépendances pour isoler le problème. Pour plus d'informations, consultez la section Débogage des builds
Création de packages pour d'autres plateformes
La rattler-build publish commande crée des packages pour le système d'exploitation de la station de travail sur laquelle la commande est exécutée. Si votre parc Deadline Cloud utilise un système d'exploitation différent de celui de votre poste de travail, ou si votre package nécessite d'autres exigences en matière d'hôte, les options suivantes s'offrent à vous :
-
Exécutez
rattler-build publishsur un hôte correspondant au système d'exploitation cible. Par exemple, utilisez une instance Amazon Elastic Compute Cloud (Amazon EC2) exécutée Linux pour créer des packages pour une Linux flotte. -
Utilisez une file d'attente de création de packages Deadline Cloud pour automatiser les builds sur la plateforme cible. Voir Créer une file d'attente de création de packages.
-
(Avancé) Utilisez la compilation croisée pour créer des packages pour une plate-forme différente de celle de votre poste de travail. Pour plus d'informations, consultez Cross-compilation
le site web prefix.dev.
Étapes suivantes
Après avoir publié des packages sur votre chaîne Amazon S3 Conda, configurez vos files d'attente Deadline Cloud pour utiliser la chaîne :
-
Configurez les autorisations de file de production pour les packages Conda personnalisés : accordez à vos files d'attente de production un accès en lecture seule au canal Conda Amazon S3.
-
Ajouter un canal conda à un environnement de file d'attente — Configurez l'environnement de file d'attente pour installer des packages à partir du canal conda Amazon S3.