Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Pubblica pacchetti su un canale conda Amazon S3
Puoi pubblicare pacchetti conda in un bucket Amazon Simple Storage Service (Amazon S3) in modo che i lavoratori di AWS Deadline Cloud (Deadline Cloud) possano installarli per eseguire i lavori. Il rattler-build publish comando funziona con Amazon S3 allo stesso modo di un canale di file system locale. Il comando può creare una ricetta e pubblicare il risultato oppure pubblicare un file di pacchetto che hai già creato. In entrambi i casi, il comando carica il pacchetto nel bucket e indicizza il canale in un solo passaggio.
Il rattler-build publish comando si autentica AWS utilizzando la catena di credenziali standard, quindi utilizza la configurazione come qualsiasi strumento. AWS AWS Per ulteriori informazioni sulla configurazione delle credenziali, vedere Configurazione e impostazioni dei file di credenziali nella Guida per l'utente (). AWS Command Line Interface AWS CLI
Prerequisiti
Prima di pubblicare pacchetti su Amazon S3, completa i seguenti prerequisiti:
-
pixi e rattler-build: installa pixi da pixi.sh
sul sito web di Pixi, quindi installa. rattler-buildpixi global install rattler-build -
git — Necessario per clonare il repository degli esempi. SìWindows, git for Windows
sul sito web Git for Windows fornisce anche una bashshell, richiesta da alcune ricette di Windows esempio. -
Bucket Amazon S3: un bucket Amazon S3 da utilizzare come canale conda. Puoi utilizzare il bucket Job Attachments della tua farm Deadline Cloud o creare un bucket separato.
-
AWS credenziali: configura le credenziali sulla tua workstation utilizzando il comando o il comando.
aws configureaws loginPer ulteriori informazioni, consulta Configurazione della AWS CLI nella Guida per l'utente di AWS Command Line Interface . -
Autorizzazioni IAM — (Facoltativo) Per ridurre l'ambito delle autorizzazioni di cui dispongono le tue credenziali, puoi utilizzare una policy AWS Identity and Access Management (IAM) che concede solo le seguenti autorizzazioni sul bucket Amazon S3 e il prefisso del canale che utilizzi (ad esempio,):
/Conda/*-
s3:GetObject -
s3:PutObject -
s3:DeleteObject -
s3:ListBucket -
s3:GetBucketLocation
-
Pubblicazione di un pacchetto su un canale Amazon S3
Usalo rattler-build publish con un s3:// target per pubblicare un pacchetto sul tuo canale conda Amazon S3. Se il canale non esiste nel bucket, lo rattler-build inizializza automaticamente. Prima di iniziare, assicurati di aver completato i prerequisiti. Prerequisiti
L'esempio seguente pubblica la ricetta di esempio Blender 4.5 dal repository deadline-cloud-samples
Nota
Le applicazioni di grandi dimensioni possono richiedere decine di GB di spazio libero su disco per l'archivio di origine, i file estratti e l'output di compilazione. Assicuratevi di utilizzare un disco con spazio disponibile sufficiente per l'output di compilazione del pacchetto.
Per pubblicare un pacchetto su un canale Amazon S3
-
Clona il repository di esempi di Deadline Cloud.
git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
Passare alla directory
conda_recipes.cd deadline-cloud-samples/conda_recipes -
Eseguire il seguente comando seguente. Sostituiscilo
amzn-s3-demo-bucketcon il nome del tuo bucket.rattler-build publish blender-4.5/recipe/recipe.yaml --to s3://amzn-s3-demo-bucket/Conda/Default --build-number=+1Il
/Conda/Defaultprefisso organizza il canale all'interno del bucket. È possibile utilizzare un prefisso diverso, ma il prefisso deve essere coerente in tutti i comandi e le configurazioni di coda che fanno riferimento al canale.
Informazioni sui numeri di build
L'--build-number=+1opzione seleziona automaticamente il numero di build successivo in base a ciò che già esiste nel canale di destinazione. La procedura migliore è non sovrascrivere mai un pacchetto in un canale. Compila sempre con un nuovo numero di build se altrimenti il pacchetto avrebbe lo stesso nome di file. L'utilizzo --build-number=+1 consente di ottenere questo risultato quando si crea su un canale di produzione o un canale di staging che rispecchia la produzione.
Se vuoi controllare direttamente il numero di build, puoi impostarlo con un valore specifico come. --build-number=7 Se si omette l'opzione, rattler-build viene utilizzato il numero di build definito nel recipe.yaml file.
Se la ricetta del pacchetto dipende dai pacchetti di un particolare canale, come conda-forge -c
conda-forge
Puoi anche pubblicare un file di pacchetto che hai già creato, ad esempio un file da una .conda build locale. Sostituiscilo amzn-s3-demo-bucket con il nome del bucket.
rattler-build publish output/linux-64/blender-4.5.0-hb0f4dca_0.conda \ --to s3://amzn-s3-demo-bucket/Conda/Default
Inizializzazione o reindicizzazione di un canale
Quando si utilizza rattler-build publish per pubblicare un pacchetto, il comando inizializza automaticamente il canale se il canale non esiste già. Nella maggior parte dei casi, non è necessario inizializzare o reindicizzare il canale manualmente.
Potrebbe essere necessario inizializzare o reindicizzare manualmente un canale nelle seguenti situazioni:
-
Vuoi creare un canale vuoto prima di pubblicare qualsiasi pacchetto, ad esempio, per verificare che il tuo ambiente di coda Deadline Cloud possa connettersi al canale.
-
Hai caricato o eliminato
.condai file direttamente con gli strumenti di Amazon S3 anziché utilizzarli erattler-build publishl'indice del canale non è aggiornato.
Inizializzazione di un canale vuoto
Per inizializzare un canale vuoto, create un repodata.json file e caricatelo noarch nella sottodirectory del prefisso del canale. Sostituiscilo amzn-s3-demo-bucket con il nome del 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
Il /Conda/Default prefisso deve corrispondere al prefisso del canale utilizzato dall'ambiente di coda. Dopo aver inizializzato il canale, puoi pubblicare i pacchetti sul canale utilizzando. rattler-build publish
Reindicizzazione di un canale
Se l'indice del canale non è aggiornato, utilizzalo rattler-index per ricostruire l'indice dai file del pacchetto nel canale. Innanzitutto, installarattler-index.
pixi global install rattler-index
Quindi reindicizza il canale. Sostituiscilo amzn-s3-demo-bucket con il nome del tuo bucket.
rattler-index s3 s3://amzn-s3-demo-bucket/Conda/Default
Testare il pacchetto
Dopo aver pubblicato il pacchetto, create un progetto pixi temporaneo per verificare che il pacchetto funzioni correttamente. Il progetto installa il pacchetto dal canale Amazon S3.
Per testare il pacchetto
-
Crea una directory di test temporanea e inizializza un progetto pixi con il canale Amazon S3. Sostituiscilo
amzn-s3-demo-bucketcon il nome del tuo bucket.mkdir package-test-env cd package-test-env pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default -
Aggiungi il pacchetto al progetto.
pixi add blender=4.5 -
Verifica che il pacchetto funzioni correttamente.
pixi run blender --versionIl
pixi runcomando attiva l'ambiente conda per la directory del progetto ed esegue il comando specificato al suo interno. L'ambiente rimane nella directory del progetto, quindi è possibile utilizzare lo stessopixi runcomando da altri terminali. Per ulteriori informazioni, consulta ilpixi runcomandosul sito web di Pixi.
Rimozione dei pacchetti dal canale
Evita di rimuovere i pacchetti dai canali che usi per la produzione, perché i lockfile fanno riferimento a pacchetti specifici tramite hash. La rimozione di un pacchetto impedisce di ricreare ambienti a partire da quei lockfile. Per i canali di sviluppo e test, puoi rimuovere un pacchetto specifico eliminando il .conda file dal bucket e quindi reindicizzando il canale.
Elimina il file del pacchetto e quindi reindicizza il canale. Sostituiscilo amzn-s3-demo-bucket con il nome del bucket.
aws s3 rm s3://amzn-s3-demo-bucket/Conda/Default/linux-64/blender-4.5.0-hb0f4dca_1.conda
Dopo aver eliminato il file, reindicizza il canale per aggiornare i metadati del canale. Per istruzioni, consulta Reindicizzazione di un canale.
I file dei pacchetti vengono archiviati in sottodirectory specifiche della piattaforma, ad esempio, o. linux-64 win-64 osx-arm64 Per elencare i pacchetti in una sottodirectory, esegui il comando seguente.
aws s3 ls s3://amzn-s3-demo-bucket/Conda/Default/linux-64/
Pulizia
Dopo il test, rimuovi la directory del progetto di test.
Per ripulire le risorse di test
-
Rimuovere la directory del progetto di test.
Su Linux emacOS, esegui il comando seguente.
rm -rf package-test-envSu Windows (cmd), esegui il comando seguente.
rmdir /s /q package-test-env
Il debug crea
Se una compilazione fallisce, rattler-build conserva la directory di compilazione in modo che tu possa esaminarla. Eseguite il comando seguente per aprire una shell interattiva nell'ambiente di compilazione con tutte le variabili di ambiente impostate così come erano durante la compilazione.
rattler-build debug shell
Dalla shell di debug, puoi modificare i file, eseguire singoli comandi di compilazione e aggiungere dipendenze per isolare il problema. Per ulteriori informazioni, consulta Debugging build
Compilazione di pacchetti per altre piattaforme
Il rattler-build publish comando crea pacchetti per il sistema operativo della workstation in cui viene eseguito il comando. Se la tua flotta Deadline Cloud utilizza un sistema operativo diverso da quello della tua workstation o se il tuo pacchetto ha altri requisiti host, hai le seguenti opzioni:
-
Esegui
rattler-build publishsu un host che corrisponde al sistema operativo di destinazione. Ad esempio, utilizza un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in esecuzione per Linux creare pacchetti per una Linux flotta. -
Utilizza una coda di creazione di pacchetti Deadline Cloud per automatizzare le build sulla piattaforma di destinazione. Vedi Creare una coda per la creazione di pacchetti.
-
(Avanzato) Usa la compilazione incrociata per creare pacchetti per una piattaforma diversa dalla tua workstation. Per ulteriori informazioni, consultate il sito Web Cross-compilation
prefix.dev.
Fasi successive
Dopo aver pubblicato i pacchetti sul tuo canale conda Amazon S3, configura le code di Deadline Cloud per utilizzare il canale:
-
Configura le autorizzazioni della coda di produzione per i pacchetti conda personalizzati: concedi alle code di produzione l'accesso in sola lettura al canale conda Amazon S3.
-
Aggiungi un canale conda a un ambiente di coda: configura l'ambiente di coda per installare pacchetti dal canale conda Amazon S3.