Fluxo de trabalho que usa o Cloud Scheduler

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

  • Dataproc
  • Compute Engine
  • Cloud Scheduler

Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

Antes de começar

Configure o seu projeto

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Crie uma função personalizada

    1. Abra a página IAM e administração → Funções na Google Cloud consola.
      1. Clique em CRIAR FUNÇÃO para abrir a página Criar função.
      2. Preencha os campos Título, Descrição, ID e Fase de lançamento. Sugestão: Use "Dataproc Workflow Template Create" como título da função.
      3. Clique em ADICIONAR AUTORIZAÇÕES,
        1. No formulário Adicionar autorizações, clique em Filtrar e, de seguida, selecione "Autorização". Conclua o filtro para ler "Autorização: dataproc.workflowTemplates.instantiate".
        2. Clique na caixa de verificação à esquerda da autorização apresentada e, de seguida, clique em Adicionar.
      4. Na página Criar função, clique novamente em ADICIONAR AUTORIZAÇÕES para repetir os subpassos anteriores e adicionar a autorização "iam.serviceAccounts.actAs" à função personalizada. A página Criar função apresenta agora duas autorizações.
      5. Clique em CRIAR na página Função personalizada. A função personalizada é apresentada na página Funções.

    Criar uma conta de serviço

    1. Na Google Cloud consola, aceda à página Contas de serviço.

      Aceder a Contas de serviço

    2. Selecione o seu projeto.

    3. Clique em Criar conta de serviço.

    4. No campo Nome da conta de serviço, introduza o nome workflow-scheduler. A Google Cloud consola preenche o campo ID da conta de serviço com base neste nome.

    5. Opcional: no campo Descrição da conta de serviço, introduza uma descrição para a conta de serviço.

    6. Clique em Criar e continuar.

    7. Clique no campo Selecionar uma função e escolha a função personalizada Dataproc Workflow Template Create que criou no passo anterior.

    8. Clique em Continuar.

    9. No campo Função de administrador da conta de serviço, introduza o endereço de email da sua Conta Google.

    10. Clique em Concluído para terminar de criar a conta de serviço.

    Crie um modelo de fluxo de trabalho.

    Copie e execute os comandos indicados abaixo numa janela de terminal local ou no Cloud Shell para criar e definir um modelo de fluxo de trabalho.

    Notas:

    • Os comandos especificam a região "us-central1". Pode especificar uma região diferente ou eliminar a flag --region se tiver executado anteriormente gcloud config set compute/region para definir a propriedade region.
    • A sequência "-- " (dois traços e um espaço) no comando add-job transmite o argumento 1000 à tarefa SparkPi, que especifica o número de amostras a usar para estimar o valor de Pi.

    1. Crie o modelo de fluxo de trabalho.
      gcloud dataproc workflow-templates create sparkpi \
          --region=us-central1
      
    2. Adicione a tarefa Spark ao modelo de fluxo de trabalho sparkpi. O ID do passo "compute" é obrigatório e identifica a tarefa SparkPi adicionada.
      gcloud dataproc workflow-templates add-job spark \
          --workflow-template=sparkpi \
          --step-id=compute \
          --class=org.apache.spark.examples.SparkPi \
          --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
          --region=us-central1 \
          -- 1000
      

    3. Use um cluster gerido, de nó único para executar o fluxo de trabalho. O Dataproc cria o cluster, executa o fluxo de trabalho no mesmo e, em seguida, elimina o cluster quando o fluxo de trabalho estiver concluído.

      gcloud dataproc workflow-templates set-managed-cluster sparkpi \
          --cluster-name=sparkpi \
          --single-node \
          --region=us-central1
      

    4. Clique no nome do sparkpi na página Fluxos de trabalho do Dataproc na Google Cloud consola para abrir a página Detalhes do modelo de fluxo de trabalho. Confirme os atributos do modelo sparkpi.

    Crie uma tarefa do Cloud Scheduler

    1. Abra a página Cloud Scheduler na Google Cloud consola (pode ter de selecionar o seu projeto para abrir a página). Clique em CRIAR TAREFA.

    2. Introduza ou selecione as seguintes informações da tarefa:

      1. Selecione uma região: "us-central" ou outra região onde criou o modelo de fluxo de trabalho.
      2. Nome: "sparkpi"
      3. Frequência: "* * * * *" seleciona todos os minutos; "0 9 * * 1" seleciona todas as segundas-feiras às 09:00. Consulte o artigo Definir a programação da tarefa para outros valores unix-cron. Nota: pode clicar num botão EXECUTAR AGORA na página Trabalhos do Cloud Scheduler na Google Cloud consola para executar e testar o seu trabalho, independentemente da frequência que definir para o mesmo.
      4. Fuso horário: selecione o seu timezone. Escreva "Estados Unidos" para listar os fusos horários dos EUA.
      5. Destino: "HTTP"
      6. URL: insira o seguinte URL depois de inserir your-project-id. Substitua "us-central1" se tiver criado o modelo de fluxo de trabalho numa região diferente. Este URL chama a API Dataproc workflowTemplates.instantiate para executar o seu modelo de fluxo de trabalho sparkpi.
        https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
        
      7. Método HTTP:
        1. "POST"
        2. Corpo: "{}"
      8. Auth header:
        1. "Adicionar token OAuth"
        2. Conta de serviço: insira o service account address da conta de serviço que criou para este tutorial. Pode usar o seguinte endereço da conta depois de inserir your-project-id:
          workflow-scheduler@your-project-id.iam.gserviceaccount.com
          
        3. Âmbito: pode ignorar este item.
      9. Clique em CRIAR.

    Teste a tarefa do fluxo de trabalho agendada

    1. Na linha da tarefa sparkpi na página Tarefas do Cloud Scheduler, clique em EXECUTAR AGORA.

    2. Aguarde alguns minutos e, em seguida, abra a página Fluxos de trabalho do Dataproc para verificar se o fluxo de trabalho sparkpi foi concluído.

    3. Depois de o fluxo de trabalho eliminar o cluster gerido, os detalhes da tarefa persistem na Google Cloud consola. Clique na tarefa compute... apresentada na página Tarefas do Dataproc para ver os detalhes da tarefa de fluxo de trabalho.

    Limpar

    O fluxo de trabalho neste tutorial elimina o respetivo cluster gerido quando o fluxo de trabalho é concluído. Manter o fluxo de trabalho permite-lhe executá-lo novamente e não incorre em custos. Pode eliminar outros recursos criados neste tutorial para evitar custos recorrentes.

    Elimine um projeto

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Elimine o modelo de fluxo de trabalho

    gcloud dataproc workflow-templates delete sparkpi \
        --region=us-central1
    

    Elimine a sua tarefa do Cloud Scheduler

    Abra a página Tarefas do Cloud Scheduler na consola, selecione a caixa à esquerda da função sparkpi e, de seguida, clique em ELIMINAR. Google Cloud

    Elimine a sua conta de serviço

    Abra a página IAM e administrador → Contas de serviço na Google Cloud consola, selecione a caixa à esquerda da workflow-scheduler... conta de serviço e, de seguida, clique em ELIMINAR.

    O que se segue?