O nó Function Compute do DataWorks permite executar código personalizado para atender a diversos requisitos de negócios. Ele oferece suporte a agendamento periódico, sendo ideal para tarefas programadas. Além disso, você pode combinar esse nó com outros tipos para criar fluxos completos de processamento de dados. Este tópico descreve como criar e usar um nó Function Compute.
Pré-requisitos
-
O Function Compute está ativado.
Ative o Function Compute antes de usar nós desse tipo no DataWorks. Após a ativação, familiarize-se com a introdução e os recursos do produto para garantir um desenvolvimento tranquilo. Para mais informações, consulte Ativar o Function Compute e O que é o Function Compute?.
-
Um serviço para invocação de funções foi criado.
O serviço é a unidade básica de recurso no Function Compute. Você pode realizar operações como autorização, configuração de log e criação de funções no nível do serviço. Portanto, crie um serviço antes de desenvolver uma função. Para mais informações, consulte Criar um serviço.
-
Uma função foi criada.
A função é a unidade básica de agendamento e execução e contém a lógica de processamento do seu código. Escreva o código seguindo a interface do Function Compute e implante-o como uma função. Para mais detalhes sobre como criar uma função, consulte Criar uma função.
Contexto
O Function Compute é um serviço de computação totalmente gerenciado e orientado a eventos. Não é necessário adquirir ou gerenciar infraestrutura, como servidores. Basta escrever e enviar código ou imagens. O Function Compute oferece suporte aos dois tipos de funções a seguir:
Função de evento: indicada para modelos orientados a eventos, nos quais a invocação ocorre quando um evento é acionado.
Função HTTP: recomendada para cenários como a criação rápida de aplicações web.
Configure o serviço e a função em um nó Function Compute e implante o nó no ambiente de produção para execução periódica.
Limitações
-
Limitações de recursos
O DataWorks suporta apenas a invocação de funções de evento, e não de funções HTTP. Assim, use uma função de evento para tarefas que deseja agendar periodicamente. Para mais informações sobre os tipos de função, consulte Tipos de função.
-
Limitações de região
O recurso Function Compute está disponível apenas em workspaces localizados nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Chengdu), China (Hong Kong), Singapura, Malásia (Kuala Lumpur), Indonésia (Jakarta), Alemanha (Frankfurt), Reino Unido (Londres), EUA (Vale do Silício) e EUA (Virgínia).
Observações de uso
-
Se a lista de serviços estiver vazia ao tentar selecionar um serviço, verifique os seguintes motivos:
Sua conta possui pagamentos pendentes. Recarregue a conta e atualize a página de configuração do nó.
O usuário conectado não tem permissão para recuperar a lista de serviços. Entre em contato com o proprietário da sua conta Alibaba Cloud para conceder ao seu usuário RAM a permissão fc:ListServices ou anexe a política AliyunFCFullAccess. Após conceder as permissões, atualize a página de configuração do nó e tente novamente. Para mais informações sobre como conceder permissões, consulte Conceder permissões a um usuário RAM.
Para funções em um nó Function Compute do DataWorks, se o tempo de execução exceder uma hora, defina o método de invocação como invocação assíncrona. Para mais detalhes sobre invocação assíncrona no Function Compute, consulte Invocação assíncrona.
-
Ao usar um usuário RAM para desenvolver um nó Function Compute, conceda a ele as permissões das seguintes políticas de sistema ou personalizadas.
Tipo de política
Descrição
Política de sistema
Se você usar uma política de sistema, conceda ao usuário as políticas
AliyunFCFullAccess,AliyunFCReadOnlyAccesseAliyunFCInvocationAccess.Política personalizada
Caso utilize uma política personalizada do Function Compute, as seguintes permissões são geralmente concedidas:
-
fc:GetAsyncTask -
fc:StopAsyncTask -
fc:GetService -
fc:ListServices -
fc:GetFunction -
fc:InvokeFunction -
fc:ListFunctions -
fc:GetFunctionAsyncInvokeConfig -
fc:ListServiceVersions -
fc:ListAliases -
fc:GetAlias -
fc:ListFunctionAsyncInvokeConfigs -
fc:GetStatefulAsyncInvocation -
fc:StopStatefulAsyncInvocation
NotaPara mais informações sobre políticas de permissão do Function Compute, consulte os seguintes documentos:
-
Etapa 1: Acessar a página de criação de nó
Faça login no console do DataWorks. Na região desejada, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
-
Acesse a página de criação de nó.
Na página DataStudio, crie um nó Function Compute de três maneiras. Método 1: Na barra de menu superior, clique em + New > Node > Function Compute. Método 2: Na árvore de processos de negócios à esquerda, clique com o botão direito no processo de negócios alvo e escolha New Node > Function Compute. Método 3: Expanda o processo de negócios alvo à esquerda, clique em General > New Node e selecione Function Compute.
Etapa 2: Criar e configurar o nó
-
Crie um nó Function Compute.
Na página de criação de nó, configure as informações básicas do novo nó, como caminho e nome, e então crie o nó.
-
Configure os parâmetros do nó Function Compute.
Na página de configuração do nó, selecione a função a ser invocada e configure seu método de invocação e variáveis. A tabela a seguir descreve os parâmetros.
Parâmetro
Descrição
Select Function
Selecione a função a ser invocada para esta tarefa. Se nenhuma função estiver disponível, crie uma. Para mais informações, consulte Criar uma função.
NotaO DataWorks suporta apenas a invocação de funções de evento, e não de funções HTTP. Assim, use uma função de evento para tarefas que deseja agendar periodicamente. Para mais informações sobre os tipos de função, consulte Tipos de função.
Neste exemplo, a função
para_service_01_by_time_triggersé selecionada. Ao criar essa função, selecione o código de exemplo para uma timer-triggered function fornecido pela plataforma. A lógica do código é a seguinte.import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the json evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payloadPara mais exemplos de código de funções, consulte Código de exemplo.
Select Version or Alias
Selecione a versão ou alias do serviço. A versão padrão é LATEST.
-
Versão do serviço
O Function Compute oferece um recurso de versionamento no nível de serviço que permite publicar uma ou mais versões do seu serviço. Ao publicar uma versão, o Function Compute cria um snapshot do serviço, incluindo sua configuração, código da função e configurações da função. Triggers não são incluídos. Em seguida, o Function Compute atribui automaticamente um número de versão ao snapshot para uso futuro. Para mais informações, consulte Publicar uma versão.
-
Alias de versão
O Function Compute permite criar um alias para uma versão de serviço. Um alias aponta para uma versão específica, facilitando operações como publicação, rollbacks e canary releases. Um alias não pode existir independentemente de um serviço ou versão. Ao usar um alias para acessar um serviço ou função, o Function Compute resolve o alias para a versão correspondente. O chamador não precisa saber a versão específica. Para mais informações, consulte Criar um alias.
Invocation Method
Os seguintes métodos de invocação são suportados:
-
Invocação síncrona: O evento aciona diretamente a função. O Function Compute executa a função e aguarda uma resposta. Após a invocação, o Function Compute retorna o resultado da execução.
-
Invocação assíncrona: O Function Compute coloca a solicitação de evento em fila e retorna uma resposta imediatamente, sem aguardar a conclusão da solicitação.
-
Se uma função for demorada, consumir muitos recursos ou conter lógica propensa a erros, use a invocação assíncrona para melhorar a velocidade de resposta e lidar com picos de tráfego de forma confiável.
-
Para tarefas do Function Compute que executam por mais de uma hora, use a invocação assíncrona.
-
Variable
Atribua valores às variáveis da função. Essas variáveis correspondem ao payload do evento definido na seção do console Function Compute.
Este exemplo passa os seguintes parâmetros para as variáveis na função
para_service_01_by_time_triggers. Nos parâmetros, o formato${}define uma variável chamadabizdate. Atribua um valor a essa variável na Etapa 4.{ "payload": "payload1", "triggerTime": "${bizdate}", "triggerName": "triggerName1" } -
-
Opcional. Depure e execute o nó Function Compute.
Após configurar o nó, clique em no ícone
. Em seguida, especifique um grupo de recursos para a tarefa e atribua valores constantes às variáveis de código para executar um teste de depuração e verificar a lógica do nó. Ao executar o teste, use o formato chave=valor. Use vírgulas (,) para separar múltiplos parâmetros.NotaPara mais informações sobre como depurar uma tarefa, consulte Depurar uma tarefa.
-
Configure as propriedades de agendamento do nó.
O DataWorks usa parâmetros de agendamento para passar valores dinâmicos às tarefas agendadas. Após definir uma variável como
${bizdate}na configuração do nó, atribua um valor a ela nas propriedades de agendamento. Este exemplo atribui a data do dia anterior à variávelbizdate. Isso significa que o DataWorks agenda o nó para executar um dia antes do horário de execução configurado. Para mais informações sobre como configurar parâmetros de agendamento, consulte Configurar parâmetros de agendamento. Clique em na aba propriedades de agendamento no painel à direita. Na seção parâmetros de agendamento, adicione manualmente um parâmetro. Defina o nome do parâmetro comobizdatee o valor como$[yyyymmdd-1]. Na seção Variável do editor de código à esquerda, referencie esse parâmetro de agendamento usando${bizdate}. Por exemplo, defina o valor do campotriggerTimecomo${bizdate}. Selecione LATEST para a versão da função e Synchronous para o método de invocação. Para mais informações sobre as propriedades de agendamento de um nó, consulte Configurar as propriedades básicas de uma tarefa.
Etapa 3: Enviar e implantar o nó
Para executar um nó Function Compute em um agendamento automático, primeiro envie-o e implante-o no ambiente de produção.
-
Salve e envie o nó.
Clique em nos ícones
e
na barra de ferramentas para salvar e enviar o nó. Na caixa de diálogo de envio, insira uma descrição da alteração e, se necessário, selecione as opções para revisão de código e teste de fumaça.NotaConfigure a propriedade Rerun attribute e os Parent Nodes nas propriedades de agendamento antes de enviar o nó.
Se a revisão de código estiver ativada, um revisor deverá aprovar o código de um nó enviado antes que o nó possa ser implantado. Para mais informações, consulte Revisão de código.
Para garantir que o nó agendado execute conforme esperado, recomendamos realizar testes de fumaça na tarefa antes de implantá-la. Para mais informações, consulte Teste de fumaça.
-
Opcional. Implante o nó.
Se estiver usando um workspace no modo padrão, clique em Deploy no canto superior direito para implantar o nó após enviá-lo. Para mais informações, consulte Workspaces no modo padrão e Implantar tarefas.
Próximas etapas
Após o envio e a implantação de uma tarefa, o Operation Center a agenda. Gerencie e monitore a tarefa no Operation Center do DataWorks. Para mais informações, consulte Operation Center.
Depois de dominar as etapas básicas para criar e usar um nó Function Compute, explore as melhores práticas para obter um entendimento mais profundo do nó. Para mais informações, consulte Adicionar marcas d'água dinamicamente a PDFs usando um nó Function Compute no DataWorks.