Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

grpc-gcp

GoogleCloudPlatform523.3kApache-2.01.0.1TypeScript support: included

Extension for supporting Google Cloud Platform specific features for gRPC.

google, grpc, cloud, gcp

readme

gRPC-GCP for Node.js

A Node.js module providing grpc supports for Google Cloud APIs.

Installation

npm install grpc-gcp --save

Usage

Let's use Spanner API as an example.

First, Create a json file defining API configuration, with ChannelPoolConfig and MethodConfig.

{
  "channelPool": {
    "maxSize": 10,
    "maxConcurrentStreamsLowWatermark": 1
  },
  "method": [
    {
      "name": [ "/google.spanner.v1.Spanner/CreateSession" ],
      "affinity": {
        "command": "BIND",
        "affinityKey": "name"
      }
    },
    {
      "name": [ "/google.spanner.v1.Spanner/GetSession" ],
      "affinity": {
        "command": "BOUND",
        "affinityKey": "name"
      }
    },
    {
      "name": [ "/google.spanner.v1.Spanner/DeleteSession" ],
      "affinity": {
        "command": "UNBIND",
        "affinityKey": "name"
      }
    }
  ]
}

Load configuration to ApiConfig.

// @grpc/grpc-js can be used in place of grpc with no changes
var grpc = require('grpc');
var grpcGcp = require('grpc-gcp')(grpc);
var fs = require('fs');

var apiDefinition = JSON.parse(fs.readFileSync('your_api_config_json_file'));
var apiConfig = grpcGcp.createGcpApiConfig(apiDefinition);

Pass gcpChannelFactoryOverride and gcpCallInvocationTransformer to channel options when initializing api client.

var channelOptions = {
  channelFactoryOverride: grpcGcp.gcpChannelFactoryOverride,
  callInvocationTransformer: grpcGcp.gcpCallInvocationTransformer,
  gcpApiConfig: apiConfig,
};

var client = new SpannerClient(
  'spanner.googleapis.com:443',
  channelCreds,
  channelOptions
);

Build from source

Download source.

git clone https://github.com/GoogleCloudPlatform/grpc-gcp-node.git && cd grpc-gcp-node
git submodule update --init --recursive

Build grpc-gcp.

npm install

Test

Setup credentials. See Getting Started With Authentication for more details.

export GOOGLE_APPLICATION_CREDENTIALS=path/to/key.json

Run unit tests.

npm test

Run system tests.

npm run system-test

changelog

Changelog

1.0.1 (2023-01-23)

Bug Fixes

  • Define a generic interface to allow flexibility (7e12a66)

1.0.0 (2022-09-14)

⚠ BREAKING CHANGES

  • require Node.js 12+ (#156)

Bug Fixes

  • deps: update dependency @google-cloud/error-reporting to v3 (#150) (4fc086f)
  • deps: update dependency @grpc/grpc-js to ~1.7.0 (#155) (8dc6d31)
  • grpc: loosen version range on @grpc/grpc-js (#153) (ad35ce7)

Build System

0.4.2 (2022-04-18)

Bug Fixes

  • deps: update dependency @grpc/grpc-js to ~1.6.0 (#143) (9e448f0)

0.4.1 (2022-04-06)

Bug Fixes

0.4.0 (2022-04-06)

Features

  • add ability to periodically request debug headers (#139) (e551d92)
  • add configuration for minimum number of channels (#136) (2140577)

Bug Fixes

  • add a stub implementation of channelz in the channel pool to fix compilation (#137) (a05c3dd)
  • deps: update dependency argparse to v2 (#93) (fd9ed4a)