

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á.

# Como o Amazon SageMaker Processing executa sua imagem de contêiner de processamento
<a name="byoc-run-image"></a>

O Amazon SageMaker Processing executa sua imagem de contêiner de processamento de forma semelhante ao comando a seguir, onde `AppSpecification.ImageUri` está o URI da imagem do Amazon ECR que você especifica em uma `CreateProcessingJob` operação. 

```
docker run [AppSpecification.ImageUri]
```

Esse comando executa o comando `ENTRYPOINT` configurado na imagem do Docker. 

Também é possível substituir o comando do ponto de entrada na imagem ou fornecer argumentos da linha de comando ao comando do ponto de entrada usando os parâmetros `AppSpecification.ContainerEntrypoint` e `AppSpecification.ContainerArgument` na solicitação `CreateProcessingJob`. A especificação desses parâmetros configura o Amazon SageMaker Processing para executar o contêiner da mesma forma que o comando a seguir. 

```
 docker run --entry-point [AppSpecification.ContainerEntrypoint] [AppSpecification.ImageUri] [AppSpecification.ContainerArguments]
```

Por exemplo, se você especificar “`ContainerEntrypoint`estar `[python3, -v, /processing_script.py]` na sua `CreateProcessingJob ` solicitação” e “ser`[data-format, csv]`”, `ContainerArguments` o Amazon SageMaker Processing executará seu contêiner com o seguinte comando. 

```
 python3 -v /processing_script.py data-format csv 
```

 Considere os seguintes detalhes ao criar o contêiner de processamento: 
+ O Amazon SageMaker Processing decide se o trabalho é concluído ou falhado, dependendo do código de saída da execução do comando. Um trabalho de processamento será concluído se todos os contêineres de processamento forem encerrados com êxito, com um código de saída de 0 e apresentará falha se algum dos contêineres for encerrado com um código de saída diferente de zero.
+  O Amazon SageMaker Processing permite que você substitua o ponto de entrada do contêiner de processamento e defina argumentos de linha de comando da mesma forma que você pode fazer com a API do Docker. As imagens do Docker também podem configurar os argumentos do ponto de entrada e da linha de comando usando as instruções da CMD e de `ENTRYPOINT`. A maneira como os parâmetros de `CreateProcessingJob`, `ContainerEntrypoint` e do `ContainerArgument` configuram o ponto de entrada e os argumentos de uma imagem do Docker espelha como o Docker substitui o ponto de entrada e os argumentos usando a API do Docker:
  + Se nem `ContainerEntrypoint` nem `ContainerArguments` forem fornecidos, o Processing usará o padrão `ENTRYPOINT` ou a CMD na imagem.
  + Se `ContainerEntrypoint` for fornecido, mas `ContainerArguments` não for, o Processing executa a imagem com o ponto de entrada fornecido e ignora o `ENTRYPOINT` e a CMD na imagem.
  + Se `ContainerArguments` for fornecido, mas `ContainerEntrypoint` não for, o Processing executa a imagem com o padrão `ENTRYPOINT` na imagem e com os argumentos fornecidos.
  + Se `ContainerEntrypoint` e `ContainerArguments` forem fornecidos, o Processing executa a imagem com o ponto de entrada e os argumentos fornecidos, e ignorará o `ENTRYPOINT` e a CMD na imagem.
+ Use a forma "exec" da instrução `ENTRYPOINT` no Dockerfile (`ENTRYPOINT` `["executable", "param1", "param2"])` em vez da forma "shell" (`ENTRYPOINT`` command param1 param2`). Isso permite que o contêiner de processamento receba sinais `SIGINT` e `SIGKILL`, que o Processing usa para interromper trabalhos de processamento com a API `StopProcessingJob`.
+ `/opt/ml`e todos os seus subdiretórios são reservados pela SageMaker IA. Ao criar a imagem de processamento do Docker, não coloque nenhum dado exigido pelo contêiner de processamento nesses diretórios.
+ Se você planeja usar dispositivos de GPU, verifique se os contêineres são compatíveis com nvidia-docker. Inclua somente o CUDA toolkit nos contêineres. Não empacote drivers NVIDIA com a imagem. Para obter mais informações sobre o nvidia-docker, consulte [NVIDIA/nvidia-docker](https://github.com/NVIDIA/nvidia-docker).