public sealed class SpannerClientBuilder : ClientBuilderBase<SpannerClient>
Reference documentation and code samples for the Google Cloud Spanner v1 API class SpannerClientBuilder.
Builder class for SpannerClient to provide simple configuration of credentials, endpoint etc.
Namespace
Google.Cloud.Spanner.V1Assembly
Google.Cloud.Spanner.V1.dll
Constructors
SpannerClientBuilder()
public SpannerClientBuilder()
Creates a new builder with default settings.
Properties
AffinityChannelPoolConfiguration
public ChannelPoolConfig AffinityChannelPoolConfiguration { get; set; }
Specifies the configuration to use for the affinity channel pool. When set, each session will be bound to a gRPC channel meaning that all commands executed on that session will be executed on that gRPC channel. May be null, in which case there will be no channel affinity. Defaults to null.
Property Value | |
---|---|
Type | Description |
ChannelPoolConfig |
Each client built will hold its own copy of AffinityChannelPoolConfiguration, which means changes made to this value affect clients built after the change but not clients already built when the change happens.
CanUseChannelPool
protected override bool CanUseChannelPool { get; }
Returns whether or not a channel pool can be used if a channel is required. The default behavior is to return true if and only if no quota project, scopes, credentials or token access method have been specified and if UseJwtAccessWithScopes flag matches the flag in ChannelPool. Derived classes should override this property if there are other reasons why the channel pool should not be used.
Property Value | |
---|---|
Type | Description |
bool |
The default channel pool cannot be used when AffinityChannelPoolConfiguration is set.
DirectedReadOptions
public DirectedReadOptions DirectedReadOptions { get; set; }
Specifies which replicas or regions should be used for non-transactional reads or queries.
Property Value | |
---|---|
Type | Description |
DirectedReadOptions |
These options will be applied to ExecuteSql, ExecuteStreamingSql, Read and StreamingRead operations being executed within a single use or read-only transaction. Otherwise, they will be ignored. For these options to be automatically applied to requests, use PooledSession to execute operations instead of SpannerClient directly.
EmulatorDetection
public EmulatorDetection EmulatorDetection { get; set; }
Specifies how the builder responds to the presence of emulator environment variables.
Property Value | |
---|---|
Type | Description |
EmulatorDetection |
This property defaults to None, meaning that environment variables are ignored.
EnvironmentVariableProvider
public Func<string, string> EnvironmentVariableProvider { get; set; }
An environment variable provider function (variable -> value) that is used during emulator environment detection. This is provided for testability, so that clients are able to test how they would connect based on emulator environment variables. This is not expected to be used in production code. The default value of null indicates "use the regular process environment variables".
Property Value | |
---|---|
Type | Description |
Funcstringstring |
LeaderRoutingEnabled
public bool LeaderRoutingEnabled { get; set; }
Specifies whether leader routing is enabled or not. This is true by default.
Property Value | |
---|---|
Type | Description |
bool |
If this value is true some operations will always be explicitly routed to the leader, some operations will never be explicitly routed to the leader, and some operations will be routed to the leader depending on the transaction type they are using.
Settings
public SpannerSettings Settings { get; set; }
The settings to use for RPCs, or null
for the default settings.
Property Value | |
---|---|
Type | Description |
SpannerSettings |
Methods
Build()
public override SpannerClient Build()
Builds the resulting client.
Returns | |
---|---|
Type | Description |
SpannerClient |
BuildAsync(CancellationToken)
public override Task<SpannerClient> BuildAsync(CancellationToken cancellationToken = default)
Builds the resulting client asynchronously.
Parameter | |
---|---|
Name | Description |
cancellationToken |
CancellationToken |
Returns | |
---|---|
Type | Description |
TaskSpannerClient |
CreateCallInvoker()
protected override CallInvoker CreateCallInvoker()
Creates a call invoker synchronously. Override this method in a concrete builder type if more call invoker mechanisms are supported. This implementation calls GetChannelCredentials() if no call invoker is specified.
Returns | |
---|---|
Type | Description |
CallInvoker |
CreateCallInvokerAsync(CancellationToken)
protected override Task<CallInvoker> CreateCallInvokerAsync(CancellationToken cancellationToken)
Creates a call invoker asynchronously. Override this method in a concrete builder type if more call invoker mechanisms are supported. This implementation calls GetChannelCredentialsAsync(CancellationToken) if no call invoker is specified.
Parameter | |
---|---|
Name | Description |
cancellationToken |
CancellationToken |
Returns | |
---|---|
Type | Description |
TaskCallInvoker |
GetChannelPool()
protected override ChannelPool GetChannelPool()
Returns the channel pool to use when no other options are specified.
Returns | |
---|---|
Type | Description |
ChannelPool |
MaybeCreateEmulatorClientBuilder()
public SpannerClientBuilder MaybeCreateEmulatorClientBuilder()
May return a builder that will connect to the emulator under certain conditions.
Returns | |
---|---|
Type | Description |
SpannerClientBuilder |
It returns null if the emulator should not be used, e.g. if EmulatorDetection is EmulatorOrProduction but the environment variable isn't configured. Otherwise, returns a builder with the endpoint and credentials set appropriately for the emulator.
Validate()
protected override void Validate()
Validates that the builder is in a consistent state for building. For example, it's invalid to call Build() on an instance which has both JSON credentials and a credentials path specified.
Setting AffinityChannelPoolConfiguration to true is not compatible with specifying a CallInvoker.
Exceptions | |
---|---|
Type | Description |
InvalidOperationException |
The builder is in an invalid state. |