Service Metadata API - Package cloud.google.com/go/compute/metadata (v0.75.0)

Package metadata provides access to Google Compute Engine (GCE) metadata and API service accounts.

This package is a wrapper around the GCE metadata service, as documented at https://developers.google.com/compute/docs/metadata .

Functions

  func 
  
 Email 
 ( 
 serviceAccount 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Email calls Client.Email on the default client.

  func 
  
 ExternalIP 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ExternalIP returns the instance's primary external (public) IP address.

  func 
  
 Get 
 ( 
 suffix 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Get calls Client.Get on the default client.

  func 
  
 Hostname 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Hostname returns the instance's hostname. This will be of the form "

  func 
  
 InstanceAttributeValue 
 ( 
 attr 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceAttributeValue calls Client.InstanceAttributeValue on the default client.

  func 
  
 InstanceAttributes 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceAttributes calls Client.InstanceAttributes on the default client.

  func 
  
 InstanceID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceID returns the current VM's numeric instance ID.

  func 
  
 InstanceName 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceName returns the current VM's instance ID string.

  func 
  
 InstanceTags 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceTags returns the list of user-defined instance tags, assigned when initially creating a GCE instance.

  func 
  
 InternalIP 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InternalIP returns the instance's primary internal IP address.

  func 
  
 NumericProjectID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

NumericProjectID returns the current instance's numeric project ID.

  func 
  
 OnGCE 
 () 
  
  bool 
 
 

OnGCE reports whether this process is running on Google Compute Engine.

  func 
  
 ProjectAttributeValue 
 ( 
 attr 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectAttributeValue calls Client.ProjectAttributeValue on the default client.

  func 
  
 ProjectAttributes 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectAttributes calls Client.ProjectAttributes on the default client.

  func 
  
 ProjectID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectID returns the current instance's project ID string.

  func 
  
 Scopes 
 ( 
 serviceAccount 
  
  string 
 
 ) 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

Scopes calls Client.Scopes on the default client.

  func 
  
 Subscribe 
 ( 
 suffix 
  
  string 
 
 , 
  
 fn 
  
 func 
 ( 
 v 
  
  string 
 
 , 
  
 ok 
  
  bool 
 
 ) 
  
  error 
 
 ) 
  
  error 
 
 

Subscribe calls Client.Subscribe on the default client.

  func 
  
 Zone 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Zone returns the current VM's zone, such as "us-central1-b".

  type 
  
 Client 
  
 struct 
  
 { 
  
 // contains filtered or unexported fields 
 } 
 

A Client provides metadata.

  func 
  
 NewClient 
 ( 
 c 
  
 * 
  http 
 
 . 
  Client 
 
 ) 
  
 * 
  Client 
 
 

NewClient returns a Client that can be used to fetch metadata. Returns the client that uses the specified http.Client for HTTP requests. If nil is specified, returns the default client.

Example

  package 
  
 main 
 import 
  
 ( 
  
 "net/http" 
  
 "cloud.google.com/go/compute/metadata" 
 ) 
 // This example demonstrates how to use your own transport when using this package. 
 func 
  
 main 
 () 
  
 { 
  
 c 
  
 := 
  
 metadata 
 . 
  NewClient 
 
 ( 
& http 
 . 
  Client 
 
 { 
 Transport 
 : 
  
 userAgentTransport 
 { 
  
 userAgent 
 : 
  
 "my-user-agent" 
 , 
  
 base 
 : 
  
 http 
 . 
 DefaultTransport 
 , 
  
 }}) 
  
 p 
 , 
  
 err 
  
 := 
  
 c 
 . 
 ProjectID 
 () 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 // TODO: Handle error. 
  
 } 
  
 _ 
  
 = 
  
 p 
  
 // TODO: Use p. 
 } 
 // userAgentTransport sets the User-Agent header before calling base. 
 type 
  
 userAgentTransport 
  
 struct 
  
 { 
  
 userAgent 
  
 string 
  
 base 
  
 http 
 . 
 RoundTripper 
 } 
 // RoundTrip implements the http.RoundTripper interface. 
 func 
  
 ( 
 t 
  
 userAgentTransport 
 ) 
  
 RoundTrip 
 ( 
 req 
  
 * 
 http 
 . 
 Request 
 ) 
  
 ( 
 * 
 http 
 . 
 Response 
 , 
  
 error 
 ) 
  
 { 
  
 req 
 . 
 Header 
 . 
 Set 
 ( 
 "User-Agent" 
 , 
  
 t 
 . 
 userAgent 
 ) 
  
 return 
  
 t 
 . 
 base 
 . 
 RoundTrip 
 ( 
 req 
 ) 
 } 
 
  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Email 
 ( 
 serviceAccount 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Email returns the email address associated with the service account. The account may be empty or the string "default" to use the instance's main account.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 ExternalIP 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ExternalIP returns the instance's primary external (public) IP address.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Get 
 ( 
 suffix 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Get returns a value from the metadata service. The suffix is appended to "http://${GCE_METADATA_HOST}/computeMetadata/v1/".

If the GCE_METADATA_HOST environment variable is not defined, a default of 169.254.169.254 will be used instead.

If the requested metadata is not defined, the returned error will be of type NotDefinedError.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Hostname 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Hostname returns the instance's hostname. This will be of the form "

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InstanceAttributeValue 
 ( 
 attr 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceAttributeValue returns the value of the provided VM instance attribute.

If the requested attribute is not defined, the returned error will be of type NotDefinedError.

InstanceAttributeValue may return ("", nil) if the attribute was defined to be the empty string.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InstanceAttributes 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceAttributes returns the list of user-defined attributes, assigned when initially creating a GCE VM instance. The value of an attribute can be obtained with InstanceAttributeValue.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InstanceID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceID returns the current VM's numeric instance ID.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InstanceName 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceName returns the current VM's instance ID string.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InstanceTags 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

InstanceTags returns the list of user-defined instance tags, assigned when initially creating a GCE instance.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 InternalIP 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

InternalIP returns the instance's primary internal IP address.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 NumericProjectID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

NumericProjectID returns the current instance's numeric project ID.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 ProjectAttributeValue 
 ( 
 attr 
  
  string 
 
 ) 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectAttributeValue returns the value of the provided project attribute.

If the requested attribute is not defined, the returned error will be of type NotDefinedError.

ProjectAttributeValue may return ("", nil) if the attribute was defined to be the empty string.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 ProjectAttributes 
 () 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectAttributes returns the list of user-defined attributes applying to the project as a whole, not just this VM. The value of an attribute can be obtained with ProjectAttributeValue.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 ProjectID 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

ProjectID returns the current instance's project ID string.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Scopes 
 ( 
 serviceAccount 
  
  string 
 
 ) 
  
 ([] 
  string 
 
 , 
  
  error 
 
 ) 
 

Scopes returns the service account scopes for the given account. The account may be empty or the string "default" to use the instance's main account.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Subscribe 
 ( 
 suffix 
  
  string 
 
 , 
  
 fn 
  
 func 
 ( 
 v 
  
  string 
 
 , 
  
 ok 
  
  bool 
 
 ) 
  
  error 
 
 ) 
  
  error 
 
 

Subscribe subscribes to a value from the metadata service. The suffix is appended to "http://${GCE_METADATA_HOST}/computeMetadata/v1/". The suffix may contain query parameters.

Subscribe calls fn with the latest metadata value indicated by the provided suffix. If the metadata value is deleted, fn is called with the empty string and ok false. Subscribe blocks until fn returns a non-nil error or the value is deleted. Subscribe returns the error value returned from the last call to fn, which may be nil when ok == false.

  func 
  
 ( 
 c 
  
 * 
  Client 
 
 ) 
  
 Zone 
 () 
  
 ( 
  string 
 
 , 
  
  error 
 
 ) 
 

Zone returns the current VM's zone, such as "us-central1-b".

  type 
  
 Error 
  
 struct 
  
 { 
  
 // Code is the HTTP response status code. 
  
 Code 
  
  int 
 
  
 // Message is the server response message. 
  
 Message 
  
  string 
 
 } 
 

Error contains an error response from the server.

  func 
  
 ( 
 e 
  
 * 
  Error 
 
 ) 
  
 Error 
 () 
  
  string 
 
 
  type 
  
 NotDefinedError 
  
  string 
 
 

NotDefinedError is returned when requested metadata is not defined.

The underlying string is the suffix after "/computeMetadata/v1/".

This error is not returned if the value is defined to be the empty string.

  func 
  
 ( 
 suffix 
  
  NotDefinedError 
 
 ) 
  
 Error 
 () 
  
  string 
 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: