Movatterモバイル変換


[0]ホーム

URL:


cloud

packagemodule
v0.123.0Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2025 License:Apache-2.0Imports:0Imported by:8

Details

Repository

github.com/googleapis/google-cloud-go

Links

README

Google Cloud Client Libraries for Go

Go Reference

Go packages forGoogle Cloud Platform services.

Installation

go get cloud.google.com/go/firestore@latest # Replace firestore with the package you want to use.

NOTE: Some of these packages are under development, and may occasionallymake backwards-incompatible changes.

Supported APIs

For an updated list of all of our released APIs please see ourreference docs.

Go Versions Supported

Our libraries are compatible with the two most recent major Goreleases, the samepolicy the Goprogramming language follows. This means the currently supported versions are:

  • Go 1.24
  • Go 1.25

Authentication

By default, each client library will useApplication Default Credentials(ADC) to automatically configure the credentials used in calling the API endpoint.When using the libraries in a Google Cloud Platform environment such as ComputeEngine, Kubernetes Engine, or App Engine, no additional authentication steps arenecessary. SeeAuthentication methods at GoogleandAuthenticate for using client librariesfor more information.

client, err := storage.NewClient(ctx)

For applications running elsewhere, such as your local development environment,you can use thegcloud auth application-default login command from theGoogle Cloud CLI to set user credentials inyour local filesystem. Application Default Credentials will automatically detectthese credentials. SeeSet up ADC for a local developmentenvironmentfor more information.

Alternately, you may need to provide an explicit path to your credentials. To authenticateusing aservice accountkey file, either set theGOOGLE_APPLICATION_CREDENTIALS environment variable to the pathto your key file, or programmatically passoption.WithCredentialsFileto theNewClient function of the desired package. For example:

client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))

You can exert even more control over authentication by using thecredentials package tocreate anauth.Credentials.Then passoption.WithAuthCredentialsto theNewClient function:

creds, err := credentials.DetectDefault(&credentials.DetectOptions{...})...client, err := storage.NewClient(ctx, option.WithAuthCredentials(creds))

Contributing

Contributions are welcome. Please, see theCONTRIBUTINGdocument for details.

Please note that this project is released with a Contributor Code of Conduct.By participating in this project you agree to abide by its terms.SeeContributor Code of Conductfor more information.

Links

Documentation

Overview

Package cloud is the root of the packages used to access Google CloudServices. Seehttps://pkg.go.dev/cloud.google.com/go#section-directories for afull list of sub-modules.

Client Options

All clients in sub-packages are configurable via client options. These optionsare described here:https://pkg.go.dev/google.golang.org/api/option.

Endpoint Override

Endpoint configuration is used to specify the URL to which requests aresent. It is used for services that support or require regional endpoints, aswell as for other use cases such astesting against fake servers.

For example, the Vertex AI service recommends that you configure the endpoint tothe location with the features you want that is closest to your physicallocation or the location of your users. There is no global endpoint for VertexAI. SeeVertex AI - Locations for more details. The following exampledemonstrates configuring a Vertex AI client with a regional endpoint:

ctx := context.Background()endpoint := "us-central1-aiplatform.googleapis.com:443"client, err := aiplatform.NewDatasetClient(ctx, option.WithEndpoint(endpoint))

Authentication and Authorization

All of the clients support authentication viaGoogle Application Default Credentials,or by providing a JSON key file for a Service Account. See examples below.

Google Application Default Credentials (ADC) is the recommended way to authorizeand authenticate clients. For information on how to create and obtainApplication Default Credentials, seehttps://cloud.google.com/docs/authentication/production. If you have yourenvironment configured correctly you will not need to pass any extra informationto the client libraries. Here is an example of a client using ADC toauthenticate:

client, err := secretmanager.NewClient(context.Background())if err != nil {// TODO: handle error.}_ = client // Use the client.

You can use a file with credentials to authenticate and authorize, such as aJSON key file associated with a Google service account. Service Account keys canbe created and downloaded fromhttps://console.cloud.google.com/iam-admin/serviceaccounts.This example uses the Secret Manger client, but the same steps apply to theall other client libraries this package as well. Example:

client, err := secretmanager.NewClient(context.Background(),option.WithCredentialsFile("/path/to/service-account-key.json"))if err != nil {// TODO: handle error.}_ = client // Use the client.

In some cases (for instance, you don't want to store secrets on disk), you cancreate credentials from in-memory JSON and use the WithCredentials option.This example uses the Secret Manager client, but the same steps apply toall other client libraries as well. Note that scopes can befound athttps://developers.google.com/identity/protocols/oauth2/scopes, andare also provided in all auto-generated libraries: for example,cloud.google.com/go/secretmanager/apiv1 provides DefaultAuthScopes. Example:

ctx := context.Background()// https://pkg.go.dev/cloud.google.com/go/auth/credentialscreds, err := credentials.DetectDefault(&credentials.DetectOptions{Scopes:          secretmanager.DefaultAuthScopes(),CredentialsJSON: []byte("JSON creds")}), secretmanager.DefaultAuthScopes()...)if err != nil {// TODO: handle error.}client, err := secretmanager.NewClient(ctx, option.WithAuthCredentials(creds))if err != nil {// TODO: handle error.}_ = client // Use the client.

Timeouts and Cancellation

By default, non-streaming methods, like Create or Get, will have a defaultdeadline applied to the context provided at call time, unless a context deadlineis already set. Streaming methods have no default deadline and will runindefinitely. To set timeouts or arrange for cancellation, usecontext. Transient errors will be retried when correctness allows.

Here is an example of setting a timeout for an RPC usingcontext.WithTimeout:

ctx := context.Background()// Do not set a timeout on the context passed to NewClient: dialing happens// asynchronously, and the context is used to refresh credentials in the// background.client, err := secretmanager.NewClient(ctx)if err != nil {// TODO: handle error.}// Time out if it takes more than 10 seconds to create a dataset.tctx, cancel := context.WithTimeout(ctx, 10*time.Second)defer cancel() // Always call cancel.req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/project-id/secrets/name"}if err := client.DeleteSecret(tctx, req); err != nil {// TODO: handle error.}

Here is an example of setting a timeout for an RPC usinggithub.com/googleapis/gax-go/v2.WithTimeout:

ctx := context.Background()// Do not set a timeout on the context passed to NewClient: dialing happens// asynchronously, and the context is used to refresh credentials in the// background.client, err := secretmanager.NewClient(ctx)if err != nil {// TODO: handle error.}req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/project-id/secrets/name"}// Time out if it takes more than 10 seconds to create a dataset.if err := client.DeleteSecret(tctx, req, gax.WithTimeout(10*time.Second)); err != nil {// TODO: handle error.}

Here is an example of how to arrange for an RPC to be canceled, usecontext.WithCancel:

ctx := context.Background()// Do not cancel the context passed to NewClient: dialing happens asynchronously,// and the context is used to refresh credentials in the background.client, err := secretmanager.NewClient(ctx)if err != nil {// TODO: handle error.}cctx, cancel := context.WithCancel(ctx)defer cancel() // Always call cancel.// TODO: Make the cancel function available to whatever might want to cancel the// call--perhaps a GUI button.req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/proj/secrets/name"}if err := client.DeleteSecret(cctx, req); err != nil {// TODO: handle error.}

Do not attempt to control the initial connection (dialing) of a service bysetting a timeout on the context passed to NewClient. Dialing is non-blocking,so timeouts would be ineffective and would only interfere with credentialrefreshing, which uses the same context.

Headers

Regardless of which transport is used, request headers can be set in the sameway using [`callctx.SetHeaders`]setheaders.

Here is a generic example:

// Set the header "key" to "value".ctx := callctx.SetHeaders(context.Background(), "key", "value")// Then use ctx in a subsequent request.response, err := client.GetSecret(ctx, request)

Google-reserved headers

There are a some header keys that Google reserves for internal use that mustnot be ovewritten. The following header keys are broadly considered reservedand should not be conveyed by client library users unless instructed to do so:

* `x-goog-api-client`* `x-goog-request-params`

Be sure to check the individual package documentation for other service-specificreserved headers. For example, Storage supports a specific auditing header thatis mentioned in that [module's documentation]storagedocs.

Google Cloud system parameters

Google Cloud services respectsystem parameterssystem parameters that can beused to augment request and/or response behavior. For the most part, they arenot needed when using one of the enclosed client libraries. However, those thatmay be necessary are made available via the [`callctx`]callctx package. If notpresent there, consider opening an issue on that repo to request a new constant.

Connection Pooling

Connection pooling differs in clients based on their transport. Cloudclients either rely on HTTP or gRPC transports to communicatewith Google Cloud.

Cloud clients that use HTTP rely on the underlying HTTP transport to cacheconnections for later re-use. These are cached to the http.MaxIdleConnsand http.MaxIdleConnsPerHost settings in http.DefaultTransport by default.

For gRPC clients, connection pooling is configurable. Users of Cloud ClientLibraries may specifygoogle.golang.org/api/option.WithGRPCConnectionPoolas a client option to NewClient calls. This configures the underlying gRPCconnections to be pooled and accessed in a round robin fashion.

Using the Libraries in Container environments(Docker)

Minimal container images like Alpine lack CA certificates. This causes RPCs toappear to hang, because gRPC retries indefinitely. Seehttps://github.com/googleapis/google-cloud-go/issues/928 for more information.

Debugging

For tips on how to write tests against code that calls into our libraries checkout ourDebugging Guide.

Testing

For tips on how to write tests against code that calls into our libraries checkout ourTesting Guide.

Inspecting errors

Most of the errors returned by the generated clients are wrapped in angithub.com/googleapis/gax-go/v2/apierror.APIError and can be further unwrappedinto agoogle.golang.org/grpc/status.Status orgoogle.golang.org/api/googleapi.Error depending on the transport used to makethe call (gRPC or REST). Converting your errors to these types can be a usefulway to get more information about what went wrong while debugging.

APIError gives access to specific details in the error. The transport-specificerrors can still be unwrapped using the APIError.

if err != nil {   var ae *apierror.APIError   if errors.As(err, &ae) {      log.Println(ae.Reason())      log.Println(ae.Details().Help.GetLinks())   }   // If a gRPC transport was used you can extract the   // google.golang.org/grpc/status.Status from the error   s := ae.GRPCStatus()   log.Println(s.Code())   }

Client Stability

Semver is used to communicate stability of the sub-modules of this package.Note, some stable sub-modules do contain packages, and sometimes features, thatare considered unstable. If something is unstable it will be explicitly labeledas such. Example of package does in an unstable package:

NOTE: This package is in beta. It is not stable, and may be subject to changes.

Clients that contain alpha and beta in their import path may change or go awaywithout notice.

Clients marked stable will maintain compatibility with future versions for aslong as we can reasonably sustain. Incompatible changes might be made in somesituations, including:

  • Security bugs may prompt backwards-incompatible changes.
  • Situations in which components are no longer feasible to maintain withoutmaking breaking changes, including removal.
  • Parts of the client surface may be outright unstable and subject to change.These parts of the surface will be labeled with the note, "It is EXPERIMENTALand subject to change or removal without notice."

Source Files

View all Source files

Directories

PathSynopsis
aimodule
alloydbmodule
analyticsmodule
apihubmodule
apikeysmodule
appenginemodule
apphubmodule
appsmodule
area120module
assetmodule
authmodule
automlmodule
backupdrmodule
batchmodule
bigquerymodule
bigtablemodule
billingmodule
cbtmodule
channelmodule
chatmodule
chroniclemodule
Package civil implements types for civil time, a time-zone-independent representation of time that follows the rules of the proleptic Gregorian calendar with exactly 24-hour days, 60-minute hours, and 60-second minutes.
Package civil implements types for civil time, a time-zone-independent representation of time that follows the rules of the proleptic Gregorian calendar with exactly 24-hour days, 60-minute hours, and 60-second minutes.
clouddmsmodule
commercemodule
computemodule
metadatamodule
configmodule
containermodule
dataflowmodule
dataformmodule
dataplexmodule
dataprocmodule
dataqnamodule
datastoremodule
deploymodule
dlpmodule
domainsmodule
eventarcmodule
filestoremodule
firestoremodule
functionsmodule
gamingmodule
gkebackupmodule
gkehubmodule
grafeasmodule
Package httpreplay provides an API for recording and replaying traffic from HTTP-based Google API clients.
Package httpreplay provides an API for recording and replaying traffic from HTTP-based Google API clients.
cmd/httprcommand
internal/proxy
Package proxy provides a record/replay HTTP proxy.
Package proxy provides a record/replay HTTP proxy.
iammodule
iapmodule
idsmodule
btree
Package btree implements in-memory B-Trees of arbitrary degree.
Package btree implements in-memory B-Trees of arbitrary degree.
detect
Package detect is used find information from the environment.
Package detect is used find information from the environment.
fields
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity.
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity.
leakcheck
Package leakcheck contains functions to check leaked goroutines.
Package leakcheck contains functions to check leaked goroutines.
optional
Package optional provides versions of primitive types that can be nil.
Package optional provides versions of primitive types that can be nil.
pretty
Package pretty implements a simple pretty-printer.
Package pretty implements a simple pretty-printer.
protostruct
Package protostruct supports operations on the protocol buffer Struct message.
Package protostruct supports operations on the protocol buffer Struct message.
testutil
Package testutil contains helper functions for writing tests.
Package testutil contains helper functions for writing tests.
tracecontext
Package tracecontext provides encoders and decoders for Stackdriver Trace contexts.
Package tracecontext provides encoders and decoders for Stackdriver Trace contexts.
uid
Package uid supports generating unique IDs.
Package uid supports generating unique IDs.
version
Package version contains version information for Google Cloud Client Libraries for Go, as reported in request headers.
Package version contains version information for Google Cloud Client Libraries for Go, as reported in request headers.
aliasfixmodule
aliasgenmodule
gapicgenmodule
godocfxmodule
stategenmodule
iotmodule
kmsmodule
languagemodule
loggingmodule
lustremodule
mapsmodule
memcachemodule
metastoremodule
netappmodule
notebooksmodule
orgpolicymodule
osconfigmodule
osloginmodule
profilermodule
pubsubmodule
redismodule
retailmodule
Package rpcreplay supports the capture and replay of gRPC calls.
Package rpcreplay supports the capture and replay of gRPC calls.
runmodule
schedulermodule
securitymodule
shellmodule
shoppingmodule
spannermodule
speechmodule
storagemodule
supportmodule
talentmodule
third_party
pkgsite
Package pkgsite is not for external use.
Package pkgsite is not for external use.
tpumodule
tracemodule
translatemodule
vertexaimodule
videomodule
visionmodule
visionaimodule
vpcaccessmodule
webriskmodule
workflowsmodule

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f orF : Jump to
y orY : Canonical URL
go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2025 Movatter.jp