Skip to main content

A stub emulator for the Google Cloud Tasks API

Project description

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.gapic.transports.cloud_tasks_grpc_transport 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcloud-tasks-emulator-0.5.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

gcloud_tasks_emulator-0.5.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file gcloud-tasks-emulator-0.5.0.tar.gz.

File metadata

  • Download URL: gcloud-tasks-emulator-0.5.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for gcloud-tasks-emulator-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7aa9d2c2d9313b60ffc2916de38b5ea6bef54dea5477f3ff1db6ea945b6c30d2
MD5 ad4d835363023b9bcc4390c644702be1
BLAKE2b-256 d24a1038ac75b8d4605e8b7724f545976938e49ad1a31a24f3757d3e2c964c30

See more details on using hashes here.

File details

Details for the file gcloud_tasks_emulator-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: gcloud_tasks_emulator-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for gcloud_tasks_emulator-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b8bb51a7ce86b13df8382bc245d4621eea606385581237141d9a6d49a52cea3
MD5 2cd7e15ad7644e249ef58cef2929980a
BLAKE2b-256 c84a36200feaf489fd1745b88da28530f1b84443022179536833b462803903f3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page