Os parâmetros de workflow permitem atribuir ou substituir centralizadamente o valor de um parâmetro em vários nós de um workflow. O exemplo a seguir mostra como substituir o valor do parâmetro ReplaceMe em um workflow acionado automaticamente.
Pré-requisitos
Crie um workflow para configurar parâmetros de workflow. Para obter mais informações, consulte Crie um workflow acionado automaticamente e Crie um workflow acionado manualmente.
-
Crie os nós no workflow. Os parâmetros de workflow configurados substituirão os valores originais dos parâmetros nesses nós.
NotaAtualmente, os parâmetros de workflow são compatíveis apenas com os seguintes tipos de nó: ODPS SQL, PyODPS 3, EMR Spark Shell, EMR Spark, EMR Shell, EMR Hive, EMR MR, EMR Presto, EMR Trino, EMR Spark SQL, EMR Spark Streaming, EMR Streaming SQL e Hologres SQL. A interface exibe a lista mais atualizada de tipos de nó compatíveis.
Para criar um nó, consulte Node Types.
Tipos de nó compatíveis
Atualmente, os parâmetros de workflow são compatíveis apenas com os seguintes tipos de nó: ODPS SQL, PyODPS 3, EMR Spark Shell, EMR Spark, EMR Shell, EMR Hive, EMR MR, EMR Presto, EMR Trino, EMR Spark SQL, EMR Spark Streaming, EMR Streaming SQL e Hologres SQL. A interface exibe a lista mais atualizada de tipos de nó compatíveis.
Notas de uso
Ao salvar um parâmetro de workflow, o DataWorks carrega a configuração mais recente sempre que você abre um nó compatível e o coloca em estado de edição. Para aplicar a nova configuração às execuções agendadas, submeta e implante o nó.
Se um parâmetro de workflow e um parâmetro de nível de nó tiverem o mesmo nome, o valor do parâmetro de workflow terá precedência.
Ao atribuir um valor a um parâmetro de workflow, o campo Value/Expression não aceita o formato ${key}:value. Por exemplo, var:1 e ${var}:1 são inválidos.
Configurações de parâmetros de workflow
-
Acesse a página DataStudio.
Faça login no DataWorks console. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
-
Abra as configurações de parâmetros do workflow.
No DataStudio, localize o workflow na árvore do painel Data Development e clique duas vezes nele para abrir o editor de workflow e acessar as configurações de Workflow Parameters. O lado esquerdo da guia lista os tipos de nó comuns, como ODPS SQL, PyODPS 3, EMR Hive, EMR Spark SQL e Hologres SQL. A barra de ferramentas disponibiliza os botões Execute e Commit. No canto superior direito, há links para Deploy e Operation Center.
Configurar parâmetros de workflow
O procedimento de configuração é o mesmo para todos os tipos de nó compatíveis. Use parâmetros de workflow quando precisar atribuir o mesmo valor a um parâmetro em vários nós. O exemplo a seguir altera o valor do parâmetro ReplaceMe em um nó ODPS SQL de 20230613 para 20230615.
-
Configure o parâmetro de nível de nó.
-
Abra o editor de nós.
Clique duas vezes no nó ODPS SQL no workflow de destino para abrir o editor.
-
Configure o parâmetro do nó.
Defina o valor do parâmetro do nó ODPS SQL como
20230613. No editor de código, escreva a instruçãoSELECT ${ReplaceMe};. Clique na guia Properties no painel direito. Na tabela Parameters, adicione um parâmetro com o nomeReplaceMee o valor20230613. Clique em Scheduling Parameter Preview. Na caixa de diálogo exibida, confirme se o parâmetro de cada instância está definido corretamente comoReplaceMe=20230613. Para obter mais informações sobre a configuração de parâmetros de nó, consulte Configure parâmetros de agendamento.
-
-
Use um parâmetro de workflow para substituir o valor do parâmetro de nível de nó.
Clique duas vezes no workflow de destino e, no painel direito da tela do workflow, clique em Workflow Parameters.
-
Na caixa de diálogo Workflow Parameters, configure o parâmetro.
Este exemplo define o valor do parâmetro de workflow como
20230615. Ao salvar a configuração, o valor do parâmetro no nó ODPS SQL muda para20230615. Adicione outros parâmetros conforme a necessidade.NotaSe um parâmetro de workflow e um parâmetro de nível de nó tiverem o mesmo nome, o valor do parâmetro de workflow terá precedência.
Ao atribuir um valor a um parâmetro de workflow, o campo Value/Expression não aceita o formato ${key}:value. Por exemplo, var:1 e ${var}:1 são inválidos.
Na caixa de diálogo Workflow Parameters, defina o Parameter Name como
ReplaceMee o valor como 20230615 e clique em Salve. Neste exemplo, em que o código ODPS SQL éSELECT ${ReplaceMe};, o valor analisado originalmente para o parâmetro ReplaceMe é20230613. Ao clicar em Scheduling Parameter Preview, você pode verificar que o parâmetro ReplaceMe das próximas três instâncias assume o valor do parâmetro de workflow20230615, confirmando que o parâmetro de workflow entrou em vigor.
Verificar a configuração
Após a configuração do parâmetro de workflow, execute-o para verificar se o valor do parâmetro de workflow substitui corretamente o valor no nível do nó.
-
Execute o workflow e atribua um valor à variável.
Ao executar um workflow com parâmetros de workflow, atribua um valor a cada parâmetro durante a execução. Para obter mais informações, consulte debugging procedure.
Na barra de ferramentas do editor de workflow, clique no ícone
Execute.Na caixa de diálogo Enter parameters., atribua o valor
20230615à variável ReplaceMe.
-
Verifique o resultado da execução.
Na tela do workflow, clique com o botão direito no nó ODPS SQL e selecione View Log. O log é exibido na parte inferior da página e mostra a atribuição do parâmetro. O valor do parâmetro do nó mudou de
20230613para20230615, confirmando que o parâmetro de workflow entrou em vigor. No log de execução, a linhaSKYNET_PARAVALUE=ReplaceMe=20230615indica que o parâmetro de workflow foi aplicado.2023-06-14 16:19:57 INFO Current task status:RUNNING 2023-06-14 16:19:57 INFO Start execute shell on node cn-shanghai.475270149050624.1626085771455. 2023-06-14 16:19:57 INFO Current working dir /home/admin/alisatasknode/taskinfo/20230614/phoenix/16/19/55/mm8wog2kwtj8czebilx1dbcp 2023-06-14 16:19:57 INFO Full Command .. 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO /opt/taobao/tbdpapp/odpswrapper/odpswrapper.py /home/admin/alisatasknode/taskinfo//20230614/phoenix/16/19/55/mm8wog2kwtj8czebilx1dbcp//275011_10728491_503348330 ReplaceMe=20230615 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO List of passing environment .. 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO SKYNET_BUSINESS_NAME=WorkFlow Parameters: 2023-06-14 16:19:57 INFO SKYNET_ENDPOINT=http://service.cn.maxcompute.aliyun-inc.com/api: 2023-06-14 16:19:57 INFO SKYNET_PTYPE=10: 2023-06-14 16:19:57 INFO SKYNET_ACTIONID=1: 2023-06-14 16:19:57 INFO TASK_WHITE_LIST=oapi.dingtalk.com:443,47.102.239.120:3306: 2023-06-14 16:19:57 INFO SKYNET_RERUN_MODE=1: 2023-06-14 16:19:57 INFO SKYNET_FLOW_PARAVALUE={"ReplaceMe":"20230615"}: 2023-06-14 16:19:57 INFO SKYNET_ONDUTY=204288958124218159: 2023-06-14 16:19:57 INFO SKYNET_SYSTEMID=dev: 2023-06-14 16:19:57 INFO CALC_ENGINE_IDENTIFIER=saochen_mc_0508_dev: 2023-06-14 16:19:57 INFO SKYNET_SOURCEID=700028402970: 2023-06-14 16:19:57 INFO SKYNET_PARAVALUE=ReplaceMe=20230615: 2023-06-14 16:19:57 INFO SKYNET_TASKID=708xxx: 2023-06-14 16:19:57 INFO SKYNET_TENANT_ID=283789484710656:
Submeter e implantar o workflow
Após confirmar que a configuração do parâmetro de workflow está correta, submeta e implante o workflow para aplicar as alterações às execuções agendadas.
-
Submeta o workflow.
Ao submeter, selecione os nós a serem incluídos e forneça uma descrição das alterações.
NotaSe esse recurso estiver ativado, um revisor deverá aprovar o código submetido antes da implantação. Para obter mais informações, consulte code review.
Clique em Commit na barra de ferramentas. Na caixa de diálogo exibida, selecione os nós a serem submetidos, insira uma Change Description e configure Code Review e Force modifique conforme necessário. Também é possível marcar a caixa de seleção Ignore alerts for inconsistent I/O. Clique em OK.
-
Implante o workflow.
Se o workspace estiver no standard mode, clique em Deploy no canto superior direito após a submissão bem-sucedida. Para obter mais informações, consulte Deploy a node.