インスタンスを作成します。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
C++
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
void CreateInstance(google::cloud::spanner_admin::InstanceAdminClient client,
std::string const& project_id,
std::string const& instance_id,
std::string const& display_name,
std::string const& config_id) {
namespace spanner = ::google::cloud::spanner;
spanner::Instance in(project_id, instance_id);
auto project = google::cloud::Project(project_id);
std::string config_name =
project.FullName() + "/instanceConfigs/" + config_id;
auto instance =
client
.CreateInstance(spanner::CreateInstanceRequestBuilder(in, config_name)
.SetDisplayName(display_name)
.SetNodeCount(1)
.SetLabels({{"cloud_spanner_samples", "true"}})
.Build())
.get();
if (!instance) throw std::move(instance).status();
std::cout << "Created instance [" << in << "]:\n" << instance->DebugString();
}
C#
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Spanner.Admin.Instance.V1;
using Google.Cloud.Spanner.Common.V1;
using Google.LongRunning;
using System;
public class CreateInstanceSample
{
public Instance CreateInstance(string projectId, string instanceId)
{
// Create the InstanceAdminClient instance.
InstanceAdminClient instanceAdminClient = InstanceAdminClient.Create();
// Initialize request parameters.
Instance instance = new Instance
{
InstanceName = InstanceName.FromProjectInstance(projectId, instanceId),
ConfigAsInstanceConfigName = InstanceConfigName.FromProjectInstanceConfig(projectId, "regional-us-central1"),
DisplayName = "This is a display name.",
NodeCount = 1,
Labels =
{
{ "cloud_spanner_samples", "true" },
}
};
ProjectName projectName = ProjectName.FromProject(projectId);
// Make the CreateInstance request.
Operation<Instance, CreateInstanceMetadata> response = instanceAdminClient.CreateInstance(projectName, instanceId, instance);
Console.WriteLine("Waiting for the operation to finish.");
// Poll until the returned long-running operation is complete.
Operation<Instance, CreateInstanceMetadata> completedResponse = response.PollUntilCompleted();
if (completedResponse.IsFaulted)
{
Console.WriteLine($"Error while creating instance: {completedResponse.Exception}");
throw completedResponse.Exception;
}
Console.WriteLine($"Instance created successfully.");
return completedResponse.Result;
}
}
Go
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
import (
"context"
"fmt"
"io"
instance "cloud.google.com/go/spanner/admin/instance/apiv1"
instancepb "google.golang.org/genproto/googleapis/spanner/admin/instance/v1"
)
func createInstance(w io.Writer, projectID, instanceID string) error {
// projectID := "my-project-id"
// instanceID := "my-instance"
ctx := context.Background()
instanceAdmin, err := instance.NewInstanceAdminClient(ctx)
if err != nil {
return err
}
defer instanceAdmin.Close()
op, err := instanceAdmin.CreateInstance(ctx, &instancepb.CreateInstanceRequest{
Parent: fmt.Sprintf("projects/%s", projectID),
InstanceId: instanceID,
Instance: &instancepb.Instance{
Config: fmt.Sprintf("projects/%s/instanceConfigs/%s", projectID, "regional-us-central1"),
DisplayName: instanceID,
NodeCount: 1,
Labels: map[string]string{"cloud_spanner_samples": "true"},
},
})
if err != nil {
return fmt.Errorf("could not create instance %s: %v", fmt.Sprintf("projects/%s/instances/%s", projectID, instanceID), err)
}
// Wait for the instance creation to finish.
i, err := op.Wait(ctx)
if err != nil {
return fmt.Errorf("waiting for instance creation to finish failed: %v", err)
}
// The instance may not be ready to serve yet.
if i.State != instancepb.Instance_READY {
fmt.Fprintf(w, "instance state is not READY yet. Got state %v\n", i.State)
}
fmt.Fprintf(w, "Created instance [%s]\n", instanceID)
return nil
}
Java
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.spanner.Instance;
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfigId;
import com.google.cloud.spanner.InstanceId;
import com.google.cloud.spanner.InstanceInfo;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.spanner.admin.instance.v1.CreateInstanceMetadata;
import java.util.concurrent.ExecutionException;
class CreateInstanceExample {
static void createInstance() {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project";
String instanceId = "my-instance";
createInstance(projectId, instanceId);
}
static void createInstance(String projectId, String instanceId) {
Spanner spanner = SpannerOptions.newBuilder().setProjectId(projectId).build().getService();
InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();
// Set Instance configuration.
String configId = "regional-us-central1";
int nodeCount = 2;
String displayName = "Descriptive name";
// Create an InstanceInfo object that will be used to create the instance.
InstanceInfo instanceInfo =
InstanceInfo.newBuilder(InstanceId.of(projectId, instanceId))
.setInstanceConfigId(InstanceConfigId.of(projectId, configId))
.setNodeCount(nodeCount)
.setDisplayName(displayName)
.build();
OperationFuture<Instance, CreateInstanceMetadata> operation =
instanceAdminClient.createInstance(instanceInfo);
try {
// Wait for the createInstance operation to finish.
Instance instance = operation.get();
System.out.printf("Instance %s was successfully created%n", instance.getId());
} catch (ExecutionException e) {
System.out.printf(
"Error: Creating instance %s failed with error message %s%n",
instanceInfo.getId(), e.getMessage());
} catch (InterruptedException e) {
System.out.println("Error: Waiting for createInstance operation to finish was interrupted");
} finally {
spanner.close();
}
}
}
Node.js
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
// Imports the Google Cloud client library
const {Spanner} = require('@google-cloud/spanner');
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const projectId = 'my-project-id';
// const instanceId = 'my-instance';
// Creates a client
const spanner = new Spanner({
projectId: projectId,
});
const instance = spanner.instance(instanceId);
// Creates a new instance
try {
console.log(`Creating instance ${instance.formattedName_}.`);
const [, operation] = await instance.create({
config: 'regional-us-west1',
nodes: 1,
displayName: 'This is a display name.',
labels: {
['cloud_spanner_samples']: 'true',
created: Math.round(Date.now() / 1000).toString(), // current time
},
});
console.log(`Waiting for operation on ${instance.id} to complete...`);
await operation.promise();
console.log(`Created instance ${instanceId}.`);
} catch (err) {
console.error('ERROR:', err);
}
PHP
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
use Google\Cloud\Spanner\SpannerClient;
/**
* Creates an instance.
* Example:
* ```
* create_instance($instanceId);
* ```
*
* @param string $instanceId The Spanner instance ID.
*/
function create_instance(string $instanceId): void
{
$spanner = new SpannerClient();
$instanceConfig = $spanner->instanceConfiguration(
'regional-us-central1'
);
$operation = $spanner->createInstance(
$instanceConfig,
$instanceId,
[
'displayName' => 'This is a display name.',
'nodeCount' => 1,
'labels' => [
'cloud_spanner_samples' => true,
]
]
);
print('Waiting for operation to complete...' . PHP_EOL);
$operation->pollUntilComplete();
printf('Created instance %s' . PHP_EOL, $instanceId);
}
Python
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
def create_instance(instance_id):
"""Creates an instance."""
spanner_client = spanner.Client()
config_name = "{}/instanceConfigs/regional-us-central1".format(
spanner_client.project_name
)
instance = spanner_client.instance(
instance_id,
configuration_name=config_name,
display_name="This is a display name.",
node_count=1,
labels={
"cloud_spanner_samples": "true",
"sample_name": "snippets-create_instance-explicit",
"created": str(int(time.time())),
},
)
operation = instance.create()
print("Waiting for operation to complete...")
operation.result(OPERATION_TIMEOUT_SECONDS)
print("Created instance {}".format(instance_id))
Ruby
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
# project_id = "Your Google Cloud project ID"
# instance_id = "Your Spanner instance ID"
require "google/cloud/spanner"
require "google/cloud/spanner/admin/instance"
instance_admin_client = Google::Cloud::Spanner::Admin::Instance.instance_admin
project_path = instance_admin_client.project_path project: project_id
instance_path = instance_admin_client.instance_path project: project_id, instance: instance_id
instance_config_path = instance_admin_client.instance_config_path project: project_id, instance_config: "regional-us-central1"
job = instance_admin_client.create_instance parent: project_path,
instance_id: instance_id,
instance: { name: instance_path,
config: instance_config_path,
display_name: instance_id,
node_count: 2,
labels: { cloud_spanner_samples: "true" } }
puts "Waiting for create instance operation to complete"
job.wait_until_done!
if job.error?
puts job.error
else
puts "Created instance #{instance_id}"
end
次のステップ
他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。