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.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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gcloud-tasks-emulator-0.6.2.tar.gz
.
File metadata
- Download URL: gcloud-tasks-emulator-0.6.2.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 512f0711fde211966f620584a2202977b49d27e1f948322e7f9d498f5d5aca0f |
|
MD5 | b9432a16b5720713c2af37e9a17fd053 |
|
BLAKE2b-256 | 1a22fb9a6ceb930b3cffd22b891bd7a88da657c168cde3f6402aaa243365745b |
File details
Details for the file gcloud_tasks_emulator-0.6.2-py3-none-any.whl
.
File metadata
- Download URL: gcloud_tasks_emulator-0.6.2-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 723da63bd1b70dc8e0444082810f9174c05b557934ade613f5c501102beb63a8 |
|
MD5 | 9e032e791051da55c12fde002616dbe2 |
|
BLAKE2b-256 | d8f4bd2822a71f08d8ef174cd90befaffcf1b70c42d5c323d2ffe7dc8efc97a6 |