Cloud Bigtable API - Class Google::Cloud::Bigtable::AppProfile (v2.12.1)

Reference documentation and code samples for the Cloud Bigtable API class Google::Cloud::Bigtable::AppProfile.

AppProfile

A configuration object describing how Cloud Bigtable should treat traffic from a particular end user application.

Inherits

  • Object

Example

require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" # Update app_profile.description = "User data instance app profile" app_profile.routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing job = app_profile.save job.wait_until_done! # Delete app_profile.delete

Methods

.multi_cluster_routing

def self.multi_cluster_routing() -> Google::Cloud::Bigtable::MultiClusterRoutingUseAny

Creates an instance of the multi cluster routing policy.

Read/write requests may be routed to any cluster in the instance and will fail over to another cluster in the event of transient errors or delays. Choosing this option sacrifices read-your-writes consistency to improve availability.

Example
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing app_profile = instance.create_app_profile(  "my-app-profile",  routing_policy,  description: "App profile for user data instance" ) puts app_profile.routing_policy

.single_cluster_routing

def self.single_cluster_routing(cluster_id, allow_transactional_writes: false) -> Google::Cloud::Bigtable::SingleClusterRouting

Creates an instance of the single cluster routing policy.

Unconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability.

Parameters
  • cluster_id (String) — The cluster to which read/write requests should be routed.
  • allow_transactional_writes (Boolean) (defaults to: false) — If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. It is unsafe to send these requests to the same table/row/column in multiple clusters. Default value is false.
Example
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(  "my-cluster",  allow_transactional_writes: true ) app_profile = instance.create_app_profile(  "my-app-profile",  routing_policy,  description: "App profile for user data instance" ) puts app_profile.routing_policy

#delete

def delete(ignore_warnings: false) -> Boolean

Deletes the app profile.

Parameter
  • ignore_warnings (Boolean) (defaults to: false) — Default value is false. If true, ignore safety checks when deleting the app profile.
Returns
  • (Boolean) — Returns true if the app profile was deleted.
Example
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" app_profile.delete ignore_warnings: true # Ignore warnings. # OR : Not ignoring warnings app_profile.delete

#description

def description() -> String

Description of the app profile.

Returns
  • (String)

#description=

def description=(text)

Sets the description of the app profile.

Parameter
  • text (String) — Description text

#etag

def etag() -> String

Etag for optimistic concurrency control.

Returns
  • (String)

#instance_id

def instance_id() -> String

The unique identifier for the instance to which the app profile belongs.

Returns
  • (String)

#multi_cluster_routing

def multi_cluster_routing() -> Google::Cloud::Bigtable::MultiClusterRoutingUseAny, nil

Gets the multi-cluster routing policy, if present.

#name

def name() -> String

The unique identifier for the app profile.

Returns
  • (String)

#path

def path() -> String

The full path for the app profile resource. Values are of the form: projects/<project_id>/instances/<instance_id>/appProfiles/<app_profile_name>.

Returns
  • (String)

#project_id

def project_id() -> String

The unique identifier for the project to which the app profile belongs.

Returns
  • (String)

#reload!

def reload!() -> Google::Cloud::Bigtable::AppProfile

Reloads the app profile data.

#routing_policy

def routing_policy() -> Google::Cloud::Bigtable::RoutingPolicy

Gets the routing policy for all read/write requests that use the app profile.

Routing Policies:

  • MultiClusterRoutingUseAny - Read/write requests may be routed to any cluster in the instance and will fail over to another cluster in the event of transient errors or delays. Choosing this option sacrifices read-your-writes consistency to improve availability.
  • SingleClusterRouting - Unconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability. Value contains cluster_id and optional field allow_transactional_writes.
Example
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing app_profile = instance.create_app_profile(  "my-app-profile",  routing_policy,  description: "App profile for user data instance" ) puts app_profile.routing_policy

#routing_policy=

def routing_policy=(policy)

Sets the routing policy for the app profile.

Parameter
  • policy (Google::Cloud::Bigtable::RoutingPolicy) —

    The routing policy for all read/write requests that use this app profile. A value must be explicitly set.

    Routing Policies:

    • MultiClusterRoutingUseAny - Read/write requests may be routed to any cluster in the instance and will fail over to another cluster in the event of transient errors or delays. Choosing this option sacrifices read-your-writes consistency to improve availability.
    • SingleClusterRouting - Unconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability. Value contains cluster_id and optional field allow_transactional_writes.
Examples

Set multi cluster routing policy.

require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing app_profile.routing_policy = routing_policy

Set single cluster routing policy.

require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(  "my-cluster",  allow_transactional_writes: true ) app_profile.routing_policy = routing_policy

#save

def save(ignore_warnings: false) -> Google::Cloud::Bigtable::AppProfile::Job
Aliases

Updates the app profile.

Parameter
  • ignore_warnings (Boolean) (defaults to: false) — Default value is false. If true, ignore safety checks when updating the app profile.
Examples
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" app_profile.description = "User data instance app profile" app_profile.routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing job = app_profile.save job.wait_until_done! if job.error?  puts job.error else  puts "App profile successfully updated."  app_profile = job.app_profile end

Update with single cluster routing.

require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" app_profile.description = "User data instance app profile" routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(  "my-cluster",  allow_transactional_writes: true ) app_profile.routing_policy = routing_policy job = app_profile.save job.done? #=> false job.reload! job.done? #=> true if job.error?  puts job.error else  app_profile = job.app_profile  puts app_profile.name end

#single_cluster_routing

def single_cluster_routing() -> Google::Cloud::Bigtable::SingleClusterRouting, nil

Gets the single cluster routing policy, if present.

#update

def update(ignore_warnings: false) -> Google::Cloud::Bigtable::AppProfile::Job
Alias Of: #save

Updates the app profile.

Parameter
  • ignore_warnings (Boolean) (defaults to: false) — Default value is false. If true, ignore safety checks when updating the app profile.
Examples
require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" app_profile.description = "User data instance app profile" app_profile.routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing job = app_profile.save job.wait_until_done! if job.error?  puts job.error else  puts "App profile successfully updated."  app_profile = job.app_profile end

Update with single cluster routing.

require "google/cloud/bigtable" bigtable = Google::Cloud::Bigtable.new instance = bigtable.instance "my-instance" app_profile = instance.app_profile "my-app-profile" app_profile.description = "User data instance app profile" routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(  "my-cluster",  allow_transactional_writes: true ) app_profile.routing_policy = routing_policy job = app_profile.save job.done? #=> false job.reload! job.done? #=> true if job.error?  puts job.error else  app_profile = job.app_profile  puts app_profile.name end