

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
<a name="publish-packages-s3-channel"></a>

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) do Usuário *AWS Command Line Interface (AWS CLI)*.

## Pré-requisitos
<a name="publish-s3-prereqs"></a>

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.](https://pixi.sh) `rattler-build`

  ```
  pixi global install rattler-build
  ```
+ **git — Necessário** para clonar o repositório de amostras. WindowsAtivado, [o git for Windows](https://gitforwindows.org/) 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) 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
<a name="publish-s3-procedure"></a>

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](#publish-s3-prereqs).

O exemplo a seguir publica a receita de amostra Blender 4.5 do repositório de [amostras do Deadline Cloud em](https://github.com/aws-deadline/deadline-cloud-samples). 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
   ```

1. Mude para o diretório `conda_recipes`.

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 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](https://conda-forge.org/), 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
<a name="publish-s3-test"></a>

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

1. Adicione o pacote ao projeto.

   ```
   pixi add blender=4.5
   ```

1. Verifique se o pacote funciona corretamente.

   ```
   pixi run blender --version
   ```

## Limpeza
<a name="publish-s3-cleanup"></a>

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
<a name="publish-s3-debug"></a>

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](https://rattler-build.prefix.dev/latest/debugging_builds/).

## Construindo pacotes para outras plataformas
<a name="publish-s3-cross-platform"></a>

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](automate-package-builds.md#s3-channel-create-queue).
+ (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](https://rattler-build.prefix.dev/latest/compilers/#cross-compilation) na documentação do rattler-build.

## Próximas etapas
<a name="publish-s3-next-steps"></a>

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](configure-jobs-s3-channel.md#s3-channel-configure-permissions) à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](configure-jobs-s3-channel.md#s3-channel-add-channel) de fila para instalar pacotes do canal conda do Amazon S3.