Se o ambiente de execução padrão do DataWorks não atender às dependências de tarefas PyODPS ou Shell — por exemplo, quando você precisa de bibliotecas Python adicionais como pandas ou jieba — crie uma imagem personalizada. Essa imagem empacota todas as dependências em um ambiente de execução padronizado e reutilizável.
Limites
-
Limites de edição:
Todas as edições suportam a criação e o uso de imagens personalizadas.
Somente a Professional Edition ou superior suporta a construção de imagens.
-
Limites de grupo de recursos: O recurso de imagem personalizada suporta apenas grupos de recursos serverless.
Para grupos de recursos legados, use o Cloud Assistant para instalar dependências externas.
-
Limites de permissão: É necessária a permissão AliyunDataWorksFullAccess ou ModifyResourceGroup.
Para detalhes sobre autorização, consulte Política do RAM para permissões de service e console .
Cotas e limites
-
Quantidade de imagens: O número de imagens personalizadas que você pode criar depende da sua edição do DataWorks.
Basic Edition e Standard Edition: 10
Professional Edition: 50
Enterprise Edition: 100
Concorrência de construção: É possível construir até duas imagens simultaneamente em cada região.
-
Requisitos de imagem ACR:
Edição da instância: Apenas instâncias da Enterprise Edition do Alibaba Cloud Container Registry (ACR) são suportadas.
Arquitetura da instância: Apenas a arquitetura AMD64 é suportada.
Tamanho da imagem: Uma única imagem não pode exceder 5 GB.
Configuração de fuso horário: Instale o pacote de fuso horário
tzdatapara evitar falhas no contêiner devido a incompatibilidade de fuso horário com o DataWorks.
Construção de imagem: As construções persistentes estão disponíveis apenas para imagens personalizadas criadas com base em imagens oficiais do DataWorks. Imagens personalizadas que referenciam uma imagem ACR não suportam construções persistentes e devem ser baixadas e implantadas novamente sempre que uma tarefa for executada.
-
Tipos de nó e métodos de construção suportados:
Tipo de nó
Construir a partir de imagens oficiais
Construir a partir de imagens ACR
PyODPS2PyODPS3EMR SparkEMR Spark SQLEMR SHELLShellPythonNotebookCDHAssignment Node
Procedimento
1. Criar uma imagem personalizada
Crie uma imagem personalizada no DataWorks com base em DataWorks Official Images ou em uma Alibaba Cloud Container Registry Image. Os parâmetros de configuração variam conforme o tipo de referência selecionado.
A partir de uma imagem oficial do DataWorks
Faça login no console do DataWorks. No painel de navegação à esquerda, clique em Image Management.
-
Na aba DataWorks Official Images, selecione uma imagem de destino para usar como base e clique em Create Custom Image na coluna Operation. Na caixa de diálogo exibida, o sistema preenche automaticamente as informações sobre a imagem de destino. A tabela a seguir descreve os parâmetros restantes.
Reference type: DataWorks official image is selected by default. Image namespace: DataWorks Default is selected by default. Image repository: DataWorks Default is selected by default.
Parâmetro
Descrição
Image Name/ID
A imagem oficial de destino é selecionada por padrão. Alterne para outra imagem conforme necessário.
Visible Scope
Define a visibilidade da imagem personalizada. As opções são Visible Only to Creator e Visible to all.
Module
Atualmente, imagens personalizadas podem ser usadas apenas no DataStudio.
Supported Task Type
Selecione os tipos de tarefa compatíveis com esta imagem. Tarefas do tipo selecionado podem usar esta imagem como ambiente de execução no DataStudio.
Installation Package
Adicione pacotes de terceiros conforme necessário. Combine vários métodos e pacotes em uma única configuração:
-
Quick Install: Na lista suspensa Installation Package, selecione
Python2,Python3ouYumpara selecionar diretamente o ambiente ou recurso desejado.Se o pacote de terceiros necessário não estiver na lista suspensa, mude para o Script mode para instalá-lo manualmente.
-
Manual Input: Na lista suspensa Installation Package, selecione
Script. Insira os comandos de instalação na caixa de script. Use os seguintes comandos de exemplo para baixar pacotes de terceiros.-
Comando de exemplo pip:
pip install xx. Este comando é para Python 2. -
Comando de exemplo pip3:
/home/tops/bin/pip3 install 'urllib3<2,0'. Este comando é para Python 3. -
Comando de exemplo yum:
yum install -y git. -
Comando de exemplo wget:
wget git.Para mais informações sobre comandos de instalação, consulte Apêndice: Referência de comandos de instalação.
-
ImportanteSe precisar instalar pacotes de terceiros ou suas dependências a partir da internet, a VPC vinculada ao grupo de recursos serverless deve ter acesso à internet pública.
-
Clique em Determine para criar a imagem.
A partir de uma imagem do Alibaba Cloud Container Registry
Para criar uma imagem personalizada com base em uma imagem ACR, ative o Container Registry. É possível criar imagens do DataWorks apenas a partir de instâncias ACR da Enterprise Edition que utilizam a arquitetura AMD64.
Faça login no console do DataWorks. No painel de navegação à esquerda, clique em Image Management.
-
Na aba Custom Images, clique em Create Image. Na caixa de diálogo exibida, configure os seguintes parâmetros principais:
Parâmetro
Descrição
Reference Type
Selecione Alibaba Cloud Container Registry Image.
Image Instance ID
Selecione uma instância Enterprise Edition criada no Container Registry.
Image Namespace
Selecione um namespace da instância de imagem.
Image Repository
Selecione um repositório de imagens da instância de imagem.
Image Version
Selecione uma versão de imagem no repositório escolhido.
VPC to Associate
Selecione a VPC vinculada à instância de imagem. Para mais informações sobre como configurar uma VPC, consulte Configurar controle de acesso em uma VPC.
ImportanteO DataWorks permite selecionar apenas uma VPC para acessar uma instância de imagem ACR.
Synchronize to MaxCompute
O padrão é No. Defina como Yes apenas após atender a ambos os pré-requisitos abaixo.
-
A Instance Specification da image instance selecionada é Standard, Advanced ou Enterprise Edition.
-
Você possui recursos de computação ativos do MaxCompute.
Quando os pré-requisitos forem atendidos:
-
Selecione Yes: Uma imagem personalizada do DataWorks é gerada. Ao publicar essa imagem, ela também será construída sincronamente como uma imagem do MaxCompute.
Para mais informações, consulte Criar uma imagem do MaxCompute em um ambiente de desenvolvimento pessoal.
-
Selecione No: Apenas uma imagem personalizada do DataWorks é gerada. Ela não será construída como uma imagem do MaxCompute.
Visible Scope
Define a visibilidade da imagem personalizada. As opções são Visible Only to Creator e Visible to all.
Module
Atualmente, imagens personalizadas podem ser usadas apenas no DataStudio.
Supported Task Type
Imagens ACR são iniciadas usando o formato
Comando de inicialização + Caminho do arquivo de código da tarefa do usuário. Os diferentes tipos de tarefa e seus comandos de inicialização padrão são:-
Shell -
Python: Para usar uma imagem personalizada criada a partir de uma imagem ACR em tarefas Python, certifique-se de que sua instância de imagem ACR contenha um ambiente Python. Caso contrário, tarefas Python não serão suportadas. -
Notebook-
Para usar uma imagem personalizada criada a partir de uma imagem ACR em tarefas Notebook, utilize a imagem base do Notebook fornecida pelo DataWorks como base para sua imagem ACR. Isso fornece o ambiente de execução necessário. A imagem base do Notebook fornecida pelo DataWorks é
dataworks-public-registry.cn-shanghai.cr.aliyuncs.com/public/dataworks-notebook:py3.11-ubuntu22.04-20241202. -
Certifique-se de que seu ambiente de construção tenha acesso à internet pública para baixar a imagem base do Notebook fornecida pelo DataWorks.
-
-
Clique em Determine para criar a imagem.
A partir de uma instância de ambiente de desenvolvimento pessoal
Na nova versão do DataStudio, crie uma nova imagem a partir de um ambiente de desenvolvimento pessoal. Para mais informações, consulte Criar uma imagem do DataWorks a partir de um ambiente de desenvolvimento pessoal.
2. Testar e publicar uma imagem personalizada
Na aba do console do DataWorks, Publish a imagem de destino. Só é possível publicar imagens que passaram no teste. Se o teste falhar, clique em na coluna Operation da imagem personalizada de destino para modificar sua configuração.
Execute as etapas a seguir:
Na aba , clique em Publish na coluna Operation da imagem de destino para abrir a caixa de diálogo Publish Image.
-
Configure os parâmetros de teste e clique em Test.
Parâmetro
Descrição
Test Resource Group
Selecione o grupo de recursos serverless a ser usado para o teste.
Test CU
Recursos de computação alocados para o teste. Padrão: 0,5 CU. Mínimo: 0,25 CU. Se a imagem for grande ou o teste demorar muito para passar, aumente o valor de CU e tente novamente.
-
Visualize o Test Result e o Test Log.
Após o início do teste, o Test Result mostra Testing. Clique em Refresh para ver o status mais recente ou em Cancel Test para encerrar o teste atual. Após cancelar, selecione um grupo de recursos diferente ou alocação de CU e teste novamente.
A seção Test Log exibe os logs de linha de comando do processo de construção da imagem em tempo real e oferece as seguintes operações: Maximize (visualizar logs longos em tela cheia), Copy (copiar o log completo para a área de transferência com um clique), Download (baixar como
image-test-log-<imageID>.log) e Collapse/Expand.Se o teste falhar, o Test Result mostra Test Failed e um painel de diagnóstico de IA aparece automaticamente. O sistema fornece uma análise de falha e soluções recomendadas com base nos logs de teste e nas informações das camadas da imagem. Ajuste a configuração da imagem ou os comandos de instalação conforme o diagnóstico e clique em Test Again.
Após o sucesso do teste, o Test Result mostra Test Successful. Se precisar alterar as condições de teste e verificar novamente, clique em Test Again.
-
Depois que o teste for aprovado, clique em Publish na parte inferior da caixa de diálogo. Imagens publicadas podem ser usadas por nós de tarefa do DataWorks.
NotaO botão Publish é habilitado apenas quando o Test result é Test Successful ou Publish Failed. O botão fica desabilitado em outros estados, como Testing, Test Failed e Published.
Observe os seguintes pontos ao testar e publicar uma imagem:
Ao testar uma imagem personalizada, selecione um grupo de recursos serverless.
Se você criar uma imagem com base em uma imagem do Alibaba Cloud Container Registry ou criar uma imagem a partir de um ambiente de desenvolvimento pessoal, garanta que a VPC vinculada ao grupo de recursos serverless para teste seja a mesma que a VPC vinculada à instância de imagem ACR.
Caso a imagem personalizada configurada busque pacotes de terceiros na internet e o teste não seja aprovado por muito tempo, verifique se a VPC vinculada ao Test Resource Group tem acesso à internet pública.
Se ocorrer uma falha de construção durante o teste ou a publicação da imagem (por exemplo, o status de publicação mostrar Published (build failed)), o console poderá exibir apenas Build Failed sem fornecer motivos detalhados, dificultando a solução de problemas autônoma. Um cenário comum é espaço insuficiente em disco no ambiente de construção. O espaço em disco necessário durante a fase de construção pode ser ligeiramente maior do que durante a fase de teste. Como resultado, o teste pode passar, mas o processo falha quando os artefatos da imagem são publicados ou gerados. Tente aumentar o Calculate CU (por exemplo, em 0,5 CU) e tente novamente. Se o problema persistir, abra um ticket para entrar em contato com o Suporte Técnico da Alibaba Cloud.
3. Vincular a imagem a um workspace
Após a publicação de uma imagem, atribua-a a um workspace diferente para torná-la disponível nele.
Na aba do console do DataWorks, localize a imagem personalizada Published.
Na coluna Operation da imagem de destino, clique em para vincular a imagem personalizada a um workspace.
4. Usar uma imagem em uma tarefa
Usar uma imagem no novo DataStudio
Acessar o DataStudio: Acesse a página Workspaces do DataWorks, alterne para a região de destino na parte superior, localize o workspace desejado e clique em na coluna Operation.
-
Configurar a imagem: No DataStudio, localize o nó de tarefa para o qual deseja testar a imagem personalizada, clique em Scheduling Settings no lado direito e configure as propriedades de recursos.
-
Resource Group: Selecione um grupo de recursos serverless.
Se o grupo de recursos de destino não for exibido, verifique se ele está vinculado ao workspace atual. Acesse a página Resource Groups , localize o grupo de recursos de destino e clique em Associate Workspace na coluna Operation para concluir o vínculo.
ImportantePara garantir que os nós de tarefa sejam executados conforme esperado, certifique-se de que o Resource Group seja o mesmo que o Test Resource Group selecionado ao Publish Image.
-
Image: Selecione uma imagem personalizada publicada.
Se trocar de imagem, republicar o nó será necessário para que a alteração tenha efeito.
No painel Scheduling configurations > Scheduling properties, configure o Resource group e o compute CU (por exemplo, 0,5) e selecione uma imagem na lista suspensa Image.
-
Depurar o nó: No painel Run Configuration no lado direito do nó, configure Computing Resources, Resource Group, Calculate CU, Image e Script Parameters, e então clique em Run na barra de ferramentas superior.
Publicar o nó: Na barra de ferramentas superior, clique em Publish para publicar o nó no ambiente de produção.
Usar uma imagem no DataStudio legado
Acessar o DataStudio: Faça login no console do DataWorks, alterne para a região de destino e clique em no painel de navegação à esquerda. Selecione o workspace desejado na lista suspensa e clique em Data Analytics.
-
Configurar a imagem: No DataStudio, localize o nó de tarefa para o qual deseja testar a imagem personalizada, clique em Scheduling Settings no lado direito e configure as propriedades de recursos na seção Scheduling Settings.
-
Resource Group for Scheduling: Selecione um grupo de recursos serverless.
Se o grupo de recursos de destino não for exibido, verifique se ele está vinculado ao workspace atual. Acesse a página Resource Groups , localize o grupo de recursos de destino e clique em Associate Workspace na coluna Operation para concluir o vínculo.
ImportantePara garantir que os nós de tarefa sejam executados conforme esperado, certifique-se de que o Resource Group for Scheduling seja o mesmo que o Test Resource Group selecionado ao Publish Image.
-
Image: Selecione uma imagem personalizada publicada.
Se trocar de imagem, republicar o nó será necessário para que a alteração tenha efeito.
-
Depurar o nó: Na barra de ferramentas superior, clique em Run with Parameters (
). Na caixa de diálogo exibida, configure Resource Group Name, CUs for Node Running e Image, e então clique em Run.Publicar o nó: Na barra de ferramentas superior, clique em Save e Commit para publicar o nó no ambiente de produção.
5. Construir uma imagem persistente
Recomendamos fortemente tornar uma imagem persistente após sua publicação e verificação de funcionamento correto. Essa prática evita falhas de execução que podem ocorrer se uma tarefa baixar uma versão inesperada de pacote durante a inicialização. Tais problemas podem resultar de bibliotecas de origem adulteradas ou dependências de versão não especificadas.
Uma imagem personalizada padrão é reimplementada a cada execução, o que aumenta o tempo de inicialização e os custos de computação. Uma imagem persistente requer apenas uma construção para reutilização ilimitada, reduzindo custos e garantindo um ambiente consistente. Construa imagens persistentes apenas para imagens personalizadas criadas a partir de imagens oficiais do DataWorks.
Na aba do console do DataWorks, localize a imagem personalizada publicada.
Na coluna Operation da imagem de destino, clique em para construir a imagem personalizada como uma imagem persistente.
-
Na caixa de diálogo Resource Group for Which You Want to Create Image, configure os seguintes parâmetros e clique em Continue.
Build resource group: Selecione o grupo de recursos serverless a ser usado para esta construção.
Build CU: Recursos de computação alocados para a construção. O valor padrão é 0,5 CU e o mínimo é 0,25 CU. O valor deve estar em incrementos de 0,25. Se a imagem for grande ou a construção demorar muito, aumente este valor.
ImportantePara evitar falhas de construção devido a problemas de rede, garanta que o build resource group seja o mesmo que o Test Resource Group usado quando você publicou a imagem personalizada.
A construção de uma imagem leva cerca de 5 a 10 minutos, dependendo do tamanho. Após uma construção bem-sucedida, o status da imagem muda para Published (Build Succeeded).
6. Outras operações
Na aba , execute também as seguintes operações rotineiras de O&M em uma imagem:
|
Ações |
Descrição |
|
Disable / Enable |
Na coluna Operation, clique em Disable. Após a desativação, a imagem deixa de ser exibida ou referenciada nos módulos. Tarefas em execução que usam esta imagem não são afetadas. A opção então muda para Enable, permitindo reativar a imagem. A operação Disable fica indisponível se o status da imagem for Expired. |
|
Modify |
Na coluna Operation, clique em Modify para alterar propriedades como descrição da imagem, escopo de visibilidade, módulos suportados, tipos de tarefa de nó e pacotes de instalação. Não é possível modificar uma imagem que esteja no estado Publishing ou Building. |
|
View Version |
Na coluna Operation, clique em View Version para visualizar todas as versões históricas da imagem. Isso facilita o rastreamento e rollbacks. |
|
Delete Image |
Na coluna Operation, clique em Delete Image. Aviso
A exclusão não afeta tarefas em execução, mas uma imagem excluída não pode ser restaurada. Ela deixará de estar disponível para novas tarefas ou visível na página Image Management. |
|
Tags |
Na coluna Tags da lista de imagens personalizadas, adicione e gerencie tags para agrupar e pesquisar imagens por critérios como linha de negócios ou ambiente. Esta coluna não é exibida na lista de DataWorks official images. |
Faturamento
A construção de imagens incorre em custo de computação calculado como Número de CUs × Duração da construção. O sistema aloca 0,5 CU por padrão. Para mais informações sobre faturamento, consulte Padrões de faturamento para grupos de recursos Serverless.
Uso em produção
Siga estas recomendações para manter as imagens personalizadas estáveis e econômicas em produção.
Imagens persistentes: Construa configurações estáveis em imagens persistentes para evitar reinstalar dependências a cada execução. Isso reduz o tempo de inicialização, diminui os custos de computação e melhora a estabilidade.
Consistência de ambiente: Mantenha as configurações de VPC e rede consistentes entre os grupos de recursos serverless usados para teste, construção e agendamento de produção, especialmente ao acessar um repositório ACR privado ou a rede pública.
Fixação de versão: Ao instalar dependências com o método
Script, especifique números exatos de versão (por exemplo,pip install pandas==1.5.3). Isso evita comportamentos inesperados decorrentes de atualizações de bibliotecas upstream.Plano de rollback: Se uma tarefa de produção falhar após uma atualização de imagem, reverta para uma versão anterior usando o histórico de implantação da tarefa ou defina a imagem para uma versão mais antiga e estável nas configurações de agendamento.
Caso de uso
Este exemplo mostra como usar uma imagem personalizada com um nó PyODPS para realizar segmentação de palavras em chinês. O fluxo de trabalho pré-instala o toolkit jieba em uma imagem personalizada, lê texto de uma tabela MaxCompute, segmenta-o e grava os resultados em uma tabela de destino para agendamento downstream.
-
Crie dados de teste.
Crie um workspace do DataWorks e associe-o a um recurso de computação MaxCompute. Para detalhes, consulte Criar um workspace e Gerenciar recursos de computação.
-
No Data Studio, crie um nó ODPS (no Data Studio legado) ou um nó MaxCompute SQL (no novo Data Studio) para criar e popular uma tabela de teste.
NotaO exemplo a seguir usa um parâmetro de agendamento. Nas Scheduling Settings à direita, defina o nome do parâmetro como
bdaye o valor como$[yyyymmdd]. Salve e implante o nó.
-
Crie uma imagem personalizada.
Para detalhes, consulte Criar uma imagem personalizada. Configure os parâmetros principais da seguinte forma:
Image Name/ID: Selecione
dataworks_pyodps_task_pod, a imagem oficial do DataWorks para nós PyODPS.Supported Task Types: Selecione
PyODPS2ePyODPS 3.Installation Package: Selecione
Python3ejieba.
Publique a imagem personalizada e associe-a ao seu workspace. Para detalhes, consulte Publicar uma imagem personalizada e Modificar a associação de workspace de uma imagem.
-
Use a imagem personalizada em uma tarefa agendada.
-
No Data Studio, crie um nó PyODPS 3 e adicione o seguinte código:
-
Nas configurações de agendamento à direita, configure os seguintes parâmetros principais:
Scheduling Parameter: Defina o nome do parâmetro como
bdaye o valor como$[yyyymmdd].Resource Group for Scheduling: Selecione o mesmo grupo de recursos serverless especificado para a Publish Image durante o Test Resource Group.
Image: Selecione a imagem personalizada publicada associada ao workspace atual.
-
Depure o nó.
Se usar o Data Studio legado, clique em Run with Parameters (
) na barra de ferramentas do nó. Configure Resource Group Name, CUs for Node Running, Image e Custom Parameters, e então clique em Run.Se usar o novo Data Studio, no painel Run Configuration à direita, configure Computing Resources, Resource Group, Calculate CU, Image e Script Parameters. Em seguida, clique em Run na barra de ferramentas do nó.
-
(Opcional) Crie uma consulta ad hoc (no Data Studio legado) ou um arquivo SQL em seu diretório pessoal (no novo Data Studio) e execute a seguinte instrução SQL para verificar se há dados na tabela de saída.
-- Replace <partition_date> with the actual partition date. SELECT * FROM participle_tb WHERE ds=<partition_date>;Se a consulta retornar dados, o resultado incluirá a coluna
word_segment(resultados da segmentação, com palavras separadas por barras verticais|) e a colunads(data da partição). -
Implante o nó PyODPS no ambiente de produção.
NotaAlterações de imagem feitas no Data Studio não são sincronizadas automaticamente com o ambiente de produção. Implante a tarefa para que as alterações tenham efeito. Para detalhes, consulte Implantar tarefas (Data Studio legado) ou Implantar nós/workflows (novo Data Studio).
-
Construa uma imagem persistente a partir da imagem personalizada. Para detalhes, consulte Construir uma imagem persistente.
FAQ
P: Uma tarefa Python reporta o erro "urllib3 v2.0 only supports OpenSSL 1.1.1+".
R: O pacote urllib3 v2.0 requer OpenSSL 1.1.1 ou posterior. Para resolver isso, faça o downgrade do urllib3 para uma versão compatível. Por exemplo: /home/tops/bin/pip3 install urllib3==1.26.16.
Documentação relacionada
Apêndice: Comandos de instalação
Para instalar pacotes em uma imagem personalizada usando o método script, utilize os comandos a seguir.
-
Para nós PyODPS 2, execute os seguintes comandos.
pip install <package-name> -i https://pypi.tuna.tsinghua.edu.cn/simplepip install <package-name>NotaSe for solicitado atualizar o PIP, execute o seguinte comando:
pip install --upgrade pip. -
Para nós PyODPS 3, execute os seguintes comandos.
/home/tops/bin/pip3 install <package-name> -i https://pypi.tuna.tsinghua.edu.cn/simple/home/tops/bin/pip3 install <package-name>NotaSe for solicitado atualizar o PIP, execute o seguinte comando:
/home/tops/bin/pip3 install --upgrade pip.Se ocorrer o erro
/home/admin/usertools/tools/cmd-0.sh: line 3: /home/tops/bin/python3: No such file or directory, abra um ticket para solicitar as permissões necessárias.
A tabela a seguir lista fontes de espelho Python públicas.
Organização
URL do espelho
Alibaba Cloud
https://mirrors.aliyun.com/pypi/simple/ImportanteÉ possível obter pacotes Python da Alibaba Cloud sem habilitar o acesso à internet.
Universidade Tsinghua
https://pypi.tuna.tsinghua.edu.cn/simpleUniversidade de Ciência e Tecnologia da China (USTC)
https://pypi.mirrors.ustc.edu.cn/simple/
> Change Workspace