Go부터 Workflows 실행

8120 단어 GCPworkflowstech

개시하다


GCP의 Workflows에서 제작된 워크플로우 실행 방법은 2021년 4월까지입니다.
다음과 같은 세 가지 방법으로 집행할 수 있다.
  • Console
  • gcloud
  • REST API

  • https://cloud.google.com/workflows/docs/executing-workflow?hl=ja#executing_a_workflow

    Go부터 실행할게요.


    Go에서 GCP 제품 처리까지 기본적으로 사용google-cloud-go
    현재 Workflows의 포장이 없기 때문에 사용googleapis/google-api-go-client.
    https://pkg.go.dev/google.golang.org/[email protected]/workflows/v1
    다음은 샘플 코드입니다.
    projectIDlocation를 원하는 값으로 변경해 주십시오.
    main.go
    package main
    
    import (
    	"context"
    	"fmt"
    
    	"google.golang.org/api/workflowexecutions/v1"
    	"google.golang.org/api/workflows/v1"
    )
    
    const (
    	projectID = "YOUR_PROJECT_ID"
    	location  = "YOUR_LOCATION"
    )
    
    func main() {
    
    	ctx := context.Background()
    
    	// workflowリストを取得
    	var targetWorkflowName string
    	{
    		workflow, err := workflows.NewService(ctx)
    		if err != nil {
    			panic(err)
    		}
    
    		// 指定したプロジェクトID・ロケーションのワークフロー一覧を取得
    		parent := fmt.Sprintf("projects/%s/locations/%s", projectID, location)
    		resp, err := workflow.Projects.Locations.Workflows.List(parent).Do()
    		if err != nil {
    			panic(err)
    		}
    
    		for _, workflow := range resp.Workflows {
    
    			// ワークフロー名を出力
    			fmt.Println(workflow.Name)
    
    			// 最終ループのワークフロー名を代入(※雑なコードなのはご容赦)
    			targetWorkflowName = workflow.Name
    		}
    	}
    
    	// targetWorkflowNameを実行する
    	workflowExecService, err := workflowexecutions.NewService(ctx)
    	if err != nil {
    		panic(err)
    	}
    
    	// ワークフローの実行
    	// e.g. targetWorkflowName="projects/{PROJECT_ID}/locations/{LOCATION}/workflows/{WORKFLOW_NAME}"
    	exe, err := workflowExecService.Projects.Locations.Workflows.Executions.Create(targetWorkflowName, &workflowexecutions.Execution{
    		Name: targetWorkflowName,
    	}).Do()
    	if err != nil {
    		panic(err)
    	}
    
    	// 実行結果出力
    	fmt.Println(exe.Name)
    }
    
    

    추가 참조 링크


    https://cloud.google.com/workflows/docs/reference/rest/v1beta/projects.locations.workflows/list

    좋은 웹페이지 즐겨찾기