Skip to content

GoogleCloudPlatform/grpc-gcp-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4a7d811 · Jan 23, 2023
Sep 14, 2022
Sep 14, 2022
Oct 24, 2018
Apr 6, 2022
Jan 23, 2023
Apr 6, 2022
Oct 11, 2018
Jul 19, 2021
Jul 19, 2021
Jul 19, 2021
Oct 11, 2018
Jul 19, 2021
Jul 19, 2021
Jul 19, 2021
Jan 23, 2023
May 2, 2020
May 2, 2020
May 2, 2020
Jul 19, 2021
Jul 19, 2021
Jul 19, 2021
Jul 19, 2021
Jan 23, 2023
Jul 19, 2021
Jul 19, 2021

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