View a markdown version of this page

Publique pacotes em um canal conda do Amazon S3 - Nuvem de prazos

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 do pixi.sh e, em seguida, instale. rattler-build

    pixi global install rattler-build
  • git — Necessário para clonar o repositório de amostras. WindowsAtivado, o git for Windows também fornece um bash shell, 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 configure comando ou o comando. aws login Para 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. GitHub Você pode substituir uma receita diferente do repositório de amostras ou usar sua própria receita.

Para publicar um pacote em um canal do Amazon S3
  1. Clone o repositório de amostras do Deadline Cloud.

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  2. Mude para o diretório conda_recipes.

    cd deadline-cloud-samples/conda_recipes
  3. Execute o comando a seguir. Substitua amzn-s3-demo-bucket pelo nome do seu bucket.

    Em Linux emacOS, execute o comando a seguir.

    rattler-build publish blender-4.5/recipe/recipe.yaml \ --to s3://amzn-s3-demo-bucket/Conda/Default

    Em Windows (cmd), execute o comando a seguir.

    rattler-build publish blender-4.5/recipe/recipe.yaml ^ --to s3://amzn-s3-demo-bucket/Conda/Default

    O /Conda/Default prefixo 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.

Para recriar e publicar um pacote atualizado, adicione --build-number=+1 para incrementar automaticamente o número da compilação.

rattler-build publish blender-4.5/recipe/recipe.yaml \ --to s3://amzn-s3-demo-bucket/Conda/Default \ --build-number=+1

Se a receita do pacote depender de pacotes de um canal específico, como conda-forge, adicione -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

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
  1. Crie um diretório de teste temporário e inicialize um projeto pixi com o canal Amazon S3. Substitua amzn-s3-demo-bucket pelo nome do seu bucket.

    mkdir package-test-env cd package-test-env pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default
  2. Adicione o pacote ao projeto.

    pixi add blender=4.5
  3. Verifique se o pacote funciona corretamente.

    pixi run blender --version

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-env

    Em 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 publish em 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: