// 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.
//
// 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.
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.

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.
// 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 . // // 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 NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string, opts ...func(*client.Client)) *EC2Metadata {
	if !aws.BoolValue(cfg.EC2MetadataDisableTimeoutOverride) && httpClientZero(cfg.HTTPClient) {
		cfg.HTTPClient = &http.Client{
			Timeout: 5 * time.Second,
		}
	}
	svc := &EC2Metadata{
		Client: client.New(
			cfg,
			metadata.ClientInfo{
				ServiceName: ServiceName,
				ServiceID:   ServiceName,
				Endpoint:    endpoint,
				APIVersion:  "latest",
			},
			handlers,
		),
	}
	svc.Handlers.Unmarshal.PushBack(unmarshalHandler)
	svc.Handlers.UnmarshalError.PushBack(unmarshalError)
	svc.Handlers.Validate.Clear()
	svc.Handlers.Validate.PushBack(validateEndpointHandler)
	if strings.ToLower(os.Getenv(disableServiceEnvVar)) == "true" {
		svc.Handlers.Send.SwapNamed(request.NamedHandler{
			Name: corehandlers.SendHandler.Name,
			Fn: func(r *request.Request) {
				r.Error = awserr.New(
					request.CanceledErrorCode,
					"EC2 IMDS access disabled via "+disableServiceEnvVar+" env var",
					nil)
			},
		})
	}
	for _, option := range opts {
		option(svc.Client)
	}
	return svc
}
func NewClient ( cfg aws . Config , handlers request . Handlers , endpoint , signingRegion string , opts ... func ( * client . Client ) ) * EC2Metadata { if ! aws . BoolValue ( cfg . EC2MetadataDisableTimeoutOverride ) && httpClientZero ( cfg . HTTPClient ) { cfg . HTTPClient = & http . Client { Timeout : 5 * time . Second , } } svc := & EC2Metadata { Client : client . New ( cfg , metadata . ClientInfo { ServiceName : ServiceName , ServiceID : ServiceName , Endpoint : endpoint , APIVersion : " " , } , handlers , ) , } svc . Handlers . Unmarshal . PushBack ( unmarshalHandler ) svc . Handlers . UnmarshalError . PushBack ( unmarshalError ) svc . Handlers . Validate . Clear ( ) svc . Handlers . Validate . PushBack ( validateEndpointHandler ) if strings . ToLower ( os . Getenv ( disableServiceEnvVar ) ) == " " { svc . Handlers . Send . SwapNamed ( request . NamedHandler { Name : corehandlers . SendHandler . Name , Fn : func ( r * request . Request ) { r . Error = awserr . New ( request . CanceledErrorCode , " " + disableServiceEnvVar + " " , nil ) } , } ) } for _ , option := range opts { option ( svc . Client ) } return svc }
NewClient returns a new EC2Metadata client.
NewClient returns a new EC2Metadata client .
// If the http client is unmodified and this feature is not disabled // set custom timeouts for EC2Metadata requests. // use a shorter timeout than default because the metadata // service is local if it is running, and to fail faster // if not running on an ec2 instance. // Disable the EC2 Metadata service if the environment variable is set. // This shortcirctes the service's functionality to always fail to send // requests. // Add additional options to the service config