Snapshot the state of a streaming job (async)

Demonstrates how to snapshot the state of a streaming job asynchronously.

Code sample

C#

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

using Google.Cloud.Dataflow.V1Beta3;
using Google.Protobuf.WellKnownTypes;
using System.Threading.Tasks;

public sealed partial class GeneratedJobsV1Beta3ClientSnippets
{
    /// <summary>Snippet for SnapshotJobAsync</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public async Task SnapshotJobRequestObjectAsync()
    {
        // Create client
        JobsV1Beta3Client jobsV1Beta3Client = await JobsV1Beta3Client.CreateAsync();
        // Initialize request argument(s)
        SnapshotJobRequest request = new SnapshotJobRequest
        {
            ProjectId = "",
            JobId = "",
            Ttl = new Duration(),
            Location = "",
            SnapshotSources = false,
            Description = "",
        };
        // Make the request
        Snapshot response = await jobsV1Beta3Client.SnapshotJobAsync(request);
    }
}

Java

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

import com.google.api.core.ApiFuture;
import com.google.dataflow.v1beta3.JobsV1Beta3Client;
import com.google.dataflow.v1beta3.Snapshot;
import com.google.dataflow.v1beta3.SnapshotJobRequest;
import com.google.protobuf.Duration;

public class AsyncSnapshotJob {

  public static void main(String[] args) throws Exception {
    asyncSnapshotJob();
  }

  public static void asyncSnapshotJob() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (JobsV1Beta3Client jobsV1Beta3Client = JobsV1Beta3Client.create()) {
      SnapshotJobRequest request =
          SnapshotJobRequest.newBuilder()
              .setProjectId("projectId-894832108")
              .setJobId("jobId101296568")
              .setTtl(Duration.newBuilder().build())
              .setLocation("location1901043637")
              .setSnapshotSources(true)
              .setDescription("description-1724546052")
              .build();
      ApiFuture<Snapshot> future = jobsV1Beta3Client.snapshotJobCallable().futureCall(request);
      // Do something.
      Snapshot response = future.get();
    }
  }
}

Node.js

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  The project which owns the job to be snapshotted.
 */
// const projectId = 'abc123'
/**
 *  The job to be snapshotted.
 */
// const jobId = 'abc123'
/**
 *  TTL for the snapshot.
 */
// const ttl = {}
/**
 *  The location that contains this job.
 */
// const location = 'abc123'
/**
 *  If true, perform snapshots for sources which support this.
 */
// const snapshotSources = true
/**
 *  User specified description of the snapshot. Maybe empty.
 */
// const description = 'abc123'

// Imports the Dataflow library
const {JobsV1Beta3Client} = require('@google-cloud/dataflow').v1beta3;

// Instantiates a client
const dataflowClient = new JobsV1Beta3Client();

async function callSnapshotJob() {
  // Construct request
  const request = {
  };

  // Run request
  const response = await dataflowClient.snapshotJob(request);
  console.log(response);
}

callSnapshotJob();

Python

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataflow_v1beta3


async def sample_snapshot_job():
    # Create a client
    client = dataflow_v1beta3.JobsV1Beta3AsyncClient()

    # Initialize request argument(s)
    request = dataflow_v1beta3.SnapshotJobRequest(
    )

    # Make the request
    response = await client.snapshot_job(request=request)

    # Handle the response
    print(response)

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.