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 de sistema de arquivos local. 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 é autenticado AWS usando a cadeia de credenciais padrão, portanto, 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 Guia do Usuário AWS Command Line Interface (AWS CLI).
Pré-requisitos
Antes de publicar pacotes no Amazon S3, preencha os seguintes pré-requisitos:
-
pixi e rattler-build — Instale o pixi a partir do pixi.sh e, em seguida, instale.
rattler-buildpixi global install rattler-build -
git — Necessário para clonar o repositório de amostras. WindowsAtivado, o git for Windows
também fornece um bashshell, exigido por algumas das receitas de Windows amostra. -
Bucket Amazon S3 — Um bucket Amazon S3 para usar como canal conda. Você pode usar o repositório de anexos de tarefas do seu farm do Deadline Cloud ou criar um intervalo 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:// destino 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, verifique se você concluiu os pré-requisitos.
O exemplo a seguir publica a receita de amostra Blender 4.5 do repositório de amostras do Deadline Cloud em
nota
Aplicativos grandes podem exigir dezenas de GB de espaço livre em disco para o arquivamento de origem, arquivos extraídos e saída de 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 seleciona 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 consegue isso quando você cria um canal de produção ou um canal de preparação que espelha a produção.
Se quiser controlar o número da compilação diretamente, você pode defini-lo com um valor específico, como--build-number=7. Se você omitir a opção, rattler-build usa o número de compilação definido no recipe.yaml arquivo.
Se a receita do pacote depender de pacotes de um canal específico, como conda-forge-c
conda-forge ao comando.
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
Inicializando ou reindexando 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 o ambiente de filas 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 mesmo pixi runcomando em outros terminais.
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 depois 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 Package 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
Após o teste, 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 comando a seguir.
rm -rf package-test-envEm Windows (cmd), execute o comando a seguir.
rmdir /s /q package-test-env
Compilações de depuração
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 compilação com todas as variáveis de ambiente configuradas como estavam durante a compilaçã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 Depuração de compilações na documentação do rattler-build
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 hospedagem, 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 Linux execução para criar pacotes para uma frota. Linux -
Use uma fila de criação de pacotes do Deadline Cloud para automatizar 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 Compilação cruzada
na documentação do rattler-build.
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 de leitura ao canal conda do Amazon S3.
-
Adicionar um canal conda a um ambiente de fila — Configure o ambiente de fila para instalar pacotes do canal conda do Amazon S3.