As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Publique pacotes em um canal conda do Amazon S3
Você pode publicar pacotes conda em um bucket do Amazon Simple Storage Service (Amazon S3) para que os funcionários do AWS Deadline Cloud (Deadline Cloud) possam instalá-los para executar trabalhos. O rattler-build publish comando funciona com o Amazon S3 da mesma forma que com um canal local do sistema de arquivos. O comando pode criar uma receita e publicar o resultado ou publicar um arquivo de pacote que você já criou. Em ambos os casos, o comando carrega o pacote no bucket e indexa o canal em uma única etapa.
O rattler-build publish comando se autentica AWS usando a cadeia de credenciais padrão, então ele usa sua AWS configuração como qualquer AWS ferramenta. Para obter mais informações sobre a configuração de credenciais, consulte Configuração e configurações do arquivo de credenciais no AWS Command Line Interface (AWS CLI) Guia do usuário.
Pré-requisitos
Antes de publicar pacotes no Amazon S3, preencha os seguintes pré-requisitos:
-
pixi e rattler-build — Instale o pixi do pixi.sh
no site da Pixi e, em seguida, instale. rattler-buildpixi global install rattler-build -
git — Necessário para clonar o repositório de amostras. OnWindows, o git for Windows
no site do Git para Windows também fornece um bashshell, que alguns Windows exemplos de receitas exigem. -
Bucket Amazon S3 — Um bucket Amazon S3 para usar como canal conda. Você pode usar o bucket de anexos de trabalho do seu farm do Deadline Cloud ou criar um bucket separado.
-
AWS credenciais — Configure as credenciais em sua estação de trabalho usando o
aws configurecomando ou o comando.aws loginPara obter mais informações, consulte Configuração do AWS CLI no Guia do usuário do AWS Command Line Interface . -
Permissões do IAM — (Opcional) Para reduzir o escopo das permissões que suas credenciais têm, você pode usar uma política AWS Identity and Access Management (IAM) que concede somente as seguintes permissões no bucket do Amazon S3 e no prefixo do canal que você usa (por exemplo,):
/Conda/*-
s3:GetObject -
s3:PutObject -
s3:DeleteObject -
s3:ListBucket -
s3:GetBucketLocation
-
Publicar um pacote em um canal do Amazon S3
Use rattler-build publish com um s3:// alvo para publicar um pacote em seu canal conda do Amazon S3. Se o canal não existir no bucket, rattler-build inicializará o canal automaticamente. Antes de começar, certifique-se de ter concluído os pré-requisitos.
O exemplo a seguir publica a receita de amostra Blender 4.5 do repositório https://github.com/aws-deadline/deadline-cloud-samples
nota
Aplicativos grandes podem exigir dezenas de GB de espaço livre em disco para o arquivo de origem, os arquivos extraídos e a saída da compilação. Certifique-se de usar um disco com espaço disponível suficiente para a saída da compilação do pacote.
Para publicar um pacote em um canal do Amazon S3
-
Clone o repositório de amostras do Deadline Cloud.
git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
Mude para o diretório
conda_recipes.cd deadline-cloud-samples/conda_recipes -
Execute o comando a seguir. Substitua
amzn-s3-demo-bucketpelo nome do seu bucket.rattler-build publish blender-4.5/recipe/recipe.yaml --to s3://amzn-s3-demo-bucket/Conda/Default --build-number=+1O
/Conda/Defaultprefixo organiza o canal dentro do bucket. Você pode usar um prefixo diferente, mas o prefixo deve ser consistente em todos os comandos e configurações de fila que fazem referência ao canal.
Sobre números de compilação
A --build-number=+1 opção escolhe automaticamente o próximo número de compilação com base no que já existe no canal de destino. A melhor prática é nunca sobrescrever um pacote em um canal. Sempre crie com um novo número de compilação se, de outra forma, o pacote tivesse o mesmo nome de arquivo. O uso --build-number=+1 alcança isso quando você cria um canal de produção ou um canal de teste que reflete a produção.
Se quiser controlar diretamente o número da compilação, você pode configurá-lo com um valor específico, como--build-number=7. Se você omitir a opção, rattler-build usará o número de compilação definido no recipe.yaml arquivo.
Se a receita do seu pacote depender de pacotes de um canal específico, como conda-forge -c
conda-forge
Você também pode publicar um arquivo de pacote que você já criou, por exemplo, um .conda arquivo de uma compilação local. Substitua amzn-s3-demo-bucket pelo nome do seu bucket.
rattler-build publish output/linux-64/blender-4.5.0-hb0f4dca_0.conda \ --to s3://amzn-s3-demo-bucket/Conda/Default
Inicializar ou reindexar um canal
Quando você usa rattler-build publish para publicar um pacote, o comando inicializa o canal automaticamente se o canal ainda não existir. Na maioria dos casos, você não precisa inicializar ou reindexar o canal manualmente.
Talvez seja necessário inicializar ou reindexar manualmente um canal nas seguintes situações:
-
Você quer criar um canal vazio antes de publicar qualquer pacote, por exemplo, para verificar se seu ambiente de fila do Deadline Cloud pode se conectar ao canal.
-
Você carregou ou excluiu
.condaarquivos diretamente com as ferramentas do Amazon S3 em vez de usarrattler-build publish, e o índice do canal está desatualizado.
Inicializando um canal vazio
Para inicializar um canal vazio, crie um repodata.json arquivo e faça o upload para o noarch subdiretório do prefixo do canal. Substitua amzn-s3-demo-bucket pelo nome do seu 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
O /Conda/Default prefixo deve corresponder ao prefixo do canal que seu ambiente de fila usa. Depois de inicializar o canal, você pode publicar pacotes no canal usandorattler-build publish.
Reindexando um canal
Se o índice do canal estiver desatualizado, use rattler-index para reconstruir o índice a partir dos arquivos do pacote no canal. Primeiro, instalerattler-index.
pixi global install rattler-index
Em seguida, reindexe o canal. Substitua amzn-s3-demo-bucket pelo nome do seu bucket.
rattler-index s3 s3://amzn-s3-demo-bucket/Conda/Default
Testando o pacote
Depois de publicar o pacote, crie um projeto pixi temporário para verificar se o pacote funciona corretamente. O projeto instala o pacote a partir do canal Amazon S3.
Para testar o pacote
-
Crie um diretório de teste temporário e inicialize um projeto pixi com o canal Amazon S3. Substitua
amzn-s3-demo-bucketpelo nome do seu bucket.mkdir package-test-env cd package-test-env pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default -
Adicione o pacote ao projeto.
pixi add blender=4.5 -
Verifique se o pacote funciona corretamente.
pixi run blender --versionO
pixi runcomando ativa o ambiente conda para o diretório do projeto e executa o comando especificado dentro dele. O ambiente persiste no diretório do projeto, então você pode usar o mesmopixi runcomando em outros terminais. Para obter mais informações, consulte opixi runcomandono site da Pixi.
Removendo pacotes do canal
Evite remover pacotes dos canais que você usa para produção, porque os arquivos de bloqueio fazem referência a pacotes específicos por hash. A remoção de um pacote impede a recriação de ambientes a partir desses arquivos de bloqueio. Para canais de desenvolvimento e teste, você pode remover um pacote específico excluindo o .conda arquivo do bucket e reindexando o canal.
Exclua o arquivo do pacote e reindexe o canal. Substitua amzn-s3-demo-bucket pelo nome do seu bucket.
aws s3 rm s3://amzn-s3-demo-bucket/Conda/Default/linux-64/blender-4.5.0-hb0f4dca_1.conda
Depois de excluir o arquivo, reindexe o canal para atualizar os metadados do canal. Para obter instruções, consulte Reindexação de um canal.
Os arquivos do pacote são armazenados em subdiretórios específicos da plataforma, como, ou. linux-64 win-64 osx-arm64 Para listar os pacotes em um subdiretório, execute o comando a seguir.
aws s3 ls s3://amzn-s3-demo-bucket/Conda/Default/linux-64/
Limpeza
Depois de testar, remova o diretório do projeto de teste.
Para limpar os recursos de teste
-
Remova o diretório do projeto de teste.
Em Linux emacOS, execute o seguinte comando.
rm -rf package-test-envEm Windows (cmd), execute o seguinte comando.
rmdir /s /q package-test-env
Depuração de compilações
Se uma compilação falhar, rattler-build preserva o diretório de compilação para que você possa investigar. Execute o comando a seguir para abrir um shell interativo no ambiente de construção com todas as variáveis de ambiente configuradas como estavam durante a construção.
rattler-build debug shell
No shell de depuração, você pode modificar arquivos, executar comandos de compilação individuais e adicionar dependências para isolar o problema. Para obter mais informações, consulte Debugging builds
Construindo pacotes para outras plataformas
O rattler-build publish comando cria pacotes para o sistema operacional da estação de trabalho em que o comando é executado. Se sua frota do Deadline Cloud usa um sistema operacional diferente da sua estação de trabalho, ou se seu pacote tem outros requisitos de host, você tem as seguintes opções:
-
Execute
rattler-build publishem um host que corresponda ao sistema operacional de destino. Por exemplo, use uma instância do Amazon Elastic Compute Cloud (Amazon EC2) em execução Linux para criar pacotes para uma Linux frota. -
Use uma fila de criação de pacotes do Deadline Cloud para automatizar as compilações na plataforma de destino. Consulte Criar uma fila de criação de pacotes.
-
(Avançado) Use a compilação cruzada para criar pacotes para uma plataforma diferente da sua estação de trabalho. Para obter mais informações, consulte Cross-compilation
no site prefix.dev.
Próximas etapas
Depois de publicar pacotes em seu canal conda do Amazon S3, configure suas filas do Deadline Cloud para usar o canal:
-
Configure permissões de fila de produção para pacotes conda personalizados — Conceda às suas filas de produção acesso somente para leitura ao canal conda do Amazon S3.
-
Adicione um canal conda a um ambiente de fila — Configure o ambiente de fila para instalar pacotes do canal conda do Amazon S3.