Skip to main content

Local Emulator for Google Cloud Tasks

Google doesn't (yet) ship an emulator for the Cloud Tasks API like they do for Cloud Datastore.

This is a stub emulator so you can run your tests and do local development without having to connect to the production Tasks API.

THIS IS A WORK IN PROGRESS NOT ALL API CALLS ARE COMPLETE


Looking for Commercial Support?

Potato offers Commercial Support for all its Open Source projects and we can tailor a support package to your needs.

If you're interested in commercial support, training, or consultancy then go ahead and contact us at opensource@potatolondon.com


Usage

Start the emulator with:

gcloud-tasks-emulator start --port=9090

Then from within your code, use the following (instead of your normal production client connection)

Python

import grpc
from google.cloud.tasks_v2 import CloudTasksClient
from google.cloud.tasks_v2.services.cloud_tasks.transports import CloudTasksGrpcTransport

client = CloudTasksClient(
    transport=CloudTasksGrpcTransport(channel=grpc.insecure_channel("127.0.0.1:9090"))
)

Node.js

const grpc = require("@grpc/grpc-js");
const { CloudTasksClient } = require('@google-cloud/tasks');

const client = new CloudTasksClient({
    servicePath: "localhost",
    port: 9090,
    sslCreds: grpc.credentials.createInsecure()
});

Java

import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.cloud.tasks.v2.CloudTasksClient;
import com.google.cloud.tasks.v2.CloudTasksSettings;
import io.grpc.ManagedChannelBuilder;

CloudTasksSettings settings = CloudTasksSettings.newBuilder()
        .setCredentialsProvider(NoCredentialsProvider.create())
        .setTransportChannelProvider(
                InstantiatingGrpcChannelProvider.newBuilder()
                        .setEndpoint("localhost:9090")
                        .setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
                        .build()
        )
        .build();
CloudTasksClient client = CloudTasksClient.create(settings);

The 'default' queue

By default, the emulator won't create a 'default' queue, however you can enable this by passing the fully-qualified name of the queue:

gcloud-tasks-emulator start --default-queue=projects/[PROJECT]/locations/[LOCATION]/queues/default

Specifying a queue.yaml

If your project uses a queue.yaml file, you can create default queues by passing its path to the --queue-yaml argument.

Additionally, you'll likely want to pass --queue-yaml-project and --queue-yaml-location to generate the correct fully qualified queue names. These settings will otherwise default to "[PROJECT]" and "[LOCATION]" respectively.

Specifying a target

Task queue needs to point at a service for outgoing requests. You can specify this with --target-host and --target-port

Testing

Run:

python gcloud_tasks_emulator/tests.py

Metadata

Release files for gcloud-tasks-emulator 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gcloud-tasks-emulator 0.6.2
File Size Uploaded
gcloud-tasks-emulator-0.6.2.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gcloud-tasks-emulator 0.6.2
File Interpreter ABI Platform
gcloud_tasks_emulator-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 35.1 kB

Release files / gcloud-tasks-emulator-0.6.2.tar.gz

Download URL gcloud-tasks-emulator-0.6.2.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
512f0711fde211966f620584a2202977b49d27e1f948322e7f9d498f5d5aca0f
BLAKE2b-256 checksum
How to use checksums
1a22fb9a6ceb930b3cffd22b891bd7a88da657c168cde3f6402aaa243365745b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.17

Release files / gcloud_tasks_emulator-0.6.2-py3-none-any.whl

Download URL gcloud_tasks_emulator-0.6.2-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
723da63bd1b70dc8e0444082810f9174c05b557934ade613f5c501102beb63a8
BLAKE2b-256 checksum
How to use checksums
d8f4bd2822a71f08d8ef174cd90befaffcf1b70c42d5c323d2ffe7dc8efc97a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.17

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page