Path: blob/master/site/pt-br/tfx/guide/container_component.md
25118 views
Criando componentes baseados em container
Os componentes baseados em container fornecem flexibilidade para integrar código escrito em qualquer linguagem em seu pipeline, desde que você possa executar esse código num container do Docker.
Se você é novato em pipelines TFX, aprenda mais sobre os principais conceitos dos pipelines TFX antes de continuar.
Criando um componente baseado em container
Os componentes baseados em container são apoiados por programas de linha de comando em containers. Se você já possui uma imagem de container, pode usar o TFX para criar um componente a partir dela usando a função create_container_component
{: .external } para declarar entradas e saídas. Parâmetros da função:
name: o nome do componente.
inputs: um dicionário que mapeia nomes de entrada para tipos. outputs: um dicionário que mapeia nomes de saída para tipos. parameters: um dicionário que mapeia nomes de parâmetros para tipos.
image: nome da imagem do container e, opcionalmente, tag da imagem.
command: linha de comando do ponto de entrada do container. Não executável dentro de um shell. A linha de comando pode usar placeholders que são substituídos no momento da compilação pelo input, output ou parameter. Os placeholders podem ser importados de
tfx.dsl.component.experimental.placeholders
{: .external }. Observe que os modelos Jinja não são suportados.
Valor de retorno: uma classe Component herdada de base_component.BaseComponent que pode ser instanciada e usada dentro do pipeline.
Placeholders
Para um componente que possui entradas ou saídas, o command
geralmente precisa ter placeholders que sejam substituídos por dados reais em tempo de execução. Vários placeholders são fornecidos para essa finalidade:
InputValuePlaceholder
: um placeholder para o valor do artefato de entrada. Em tempo de execução, este placeholder é substituído pela representação em string do valor do artefato.InputUriPlaceholder
: um placeholder para o URI do argumento do artefato de entrada. Em tempo de execução, este placeholder é substituído pela URI dos dados do artefato de entrada.OutputUriPlaceholder
: um placeholder para o URI do argumento do artefato de saída. Em tempo de execução, este placeholder é substituído pela URI onde o componente deve armazenar os dados do artefato de saída.
Saiba mais sobre Placeholders de linha de comando do componente TFX{: .external }.
Exemplo de componente baseado em container
O código a seguir é um exemplo de um componente não python que baixa, transforma e carrega os dados: