const ( // ServiceName is the name of the service. ServiceName = "ec2metadata" )
type EC2IAMInfo struct { Code string LastUpdated time.Time InstanceProfileArn string InstanceProfileID string }
An EC2IAMInfo provides the shape for unmarshaling an IAM info from the metadata API
type EC2InstanceIdentityDocument struct { DevpayProductCodes []string `json:"devpayProductCodes"` MarketplaceProductCodes []string `json:"marketplaceProductCodes"` AvailabilityZone string `json:"availabilityZone"` PrivateIP string `json:"privateIp"` Version string `json:"version"` Region string `json:"region"` InstanceID string `json:"instanceId"` BillingProducts []string `json:"billingProducts"` InstanceType string `json:"instanceType"` AccountID string `json:"accountId"` PendingTime time.Time `json:"pendingTime"` ImageID string `json:"imageId"` KernelID string `json:"kernelId"` RamdiskID string `json:"ramdiskId"` Architecture string `json:"architecture"` }
An EC2InstanceIdentityDocument provides the shape for unmarshaling an instance identity document
type EC2Metadata struct { *client.Client }
A EC2Metadata is an EC2 Metadata service Client.
func New(p client.ConfigProvider, cfgs ...*aws.Config) *EC2Metadata
New creates a new instance of the EC2Metadata client with a session. This client is safe to use across multiple goroutines.
Example:
// Create a EC2Metadata client from just a session. svc := ec2metadata.New(mySession) // Create a EC2Metadata client with additional configuration svc := ec2metadata.New(mySession, aws.NewConfig().WithLogLevel(aws.LogDebugHTTPBody))
func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string, opts ...func(*client.Client)) *EC2Metadata
NewClient returns a new EC2Metadata client. Should be used to create a client when not using a session. Generally using just New with a session is preferred.
Will remove the URL path from the endpoint provided to ensure the EC2 IMDS client is able to communicate with the EC2 IMDS API.
If an unmodified HTTP client is provided from the stdlib default, or no client the EC2RoleProvider's EC2Metadata HTTP client's timeout will be shortened. To disable this set Config.EC2MetadataDisableTimeoutOverride to false. Enabled by default.
func (c *EC2Metadata) Available() bool
Available returns if the application has access to the EC2 Metadata service. Can be used to determine if application is running within an EC2 Instance and the metadata service is available.
func (c *EC2Metadata) AvailableWithContext(ctx aws.Context) bool
AvailableWithContext returns if the application has access to the EC2 Metadata service. Can be used to determine if application is running within an EC2 Instance and the metadata service is available.
func (c *EC2Metadata) GetDynamicData(p string) (string, error)
GetDynamicData uses the path provided to request information from the EC2 instance metadata service for dynamic data. The content will be returned as a string, or error if the request failed.
func (c *EC2Metadata) GetDynamicDataWithContext(ctx aws.Context, p string) (string, error)
GetDynamicDataWithContext uses the path provided to request information from the EC2 instance metadata service for dynamic data. The content will be returned as a string, or error if the request failed.
func (c *EC2Metadata) GetInstanceIdentityDocument() (EC2InstanceIdentityDocument, error)
GetInstanceIdentityDocument retrieves an identity document describing an instance. Error is returned if the request fails or is unable to parse the response.
func (c *EC2Metadata) GetInstanceIdentityDocumentWithContext(ctx aws.Context) (EC2InstanceIdentityDocument, error)
GetInstanceIdentityDocumentWithContext retrieves an identity document describing an instance. Error is returned if the request fails or is unable to parse the response.
func (c *EC2Metadata) GetMetadata(p string) (string, error)
GetMetadata uses the path provided to request information from the EC2 instance metadata service. The content will be returned as a string, or error if the request failed.
func (c *EC2Metadata) GetMetadataWithContext(ctx aws.Context, p string) (string, error)
GetMetadataWithContext uses the path provided to request information from the EC2 instance metadata service. The content will be returned as a string, or error if the request failed.
func (c *EC2Metadata) GetUserData() (string, error)
GetUserData returns the userdata that was configured for the service. If there is no user-data setup for the EC2 instance a "NotFoundError" error code will be returned.
func (c *EC2Metadata) GetUserDataWithContext(ctx aws.Context) (string, error)
GetUserDataWithContext returns the userdata that was configured for the service. If there is no user-data setup for the EC2 instance a "NotFoundError" error code will be returned.
func (c *EC2Metadata) IAMInfo() (EC2IAMInfo, error)
IAMInfo retrieves IAM info from the metadata API
func (c *EC2Metadata) IAMInfoWithContext(ctx aws.Context) (EC2IAMInfo, error)
IAMInfoWithContext retrieves IAM info from the metadata API
func (c *EC2Metadata) Region() (string, error)
Region returns the region the instance is running in.
func (c *EC2Metadata) RegionWithContext(ctx aws.Context) (string, error)
RegionWithContext returns the region the instance is running in.