Class: Aws::ECSCredentials

Inherits:
Object
  • Object
show all
Includes:
CredentialProvider
Defined in:
gems/aws-sdk-core/lib/aws-sdk-core/ecs_credentials.rb

Overview

An auto-refreshing credential provider that loads credentials from instances running in ECS.

ecs_credentials = Aws::ECSCredentials.new(retries: 3)
ec2 = Aws::EC2::Client.new(credentials: ecs_credentials)

Instance Attribute Summary collapse

Attributes included from CredentialProvider

#credentials

Instance Method Summary collapse

Methods included from CredentialProvider

#set?

Constructor Details

#initialize(options = {}) ⇒ ECSCredentials

Returns a new instance of ECSCredentials.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :retries (Integer) — default: 5

    Number of times to retry when retrieving credentials.

  • :ip_address (String) — default: '169.254.170.2'
  • :port (Integer) — default: 80
  • :credential_path (String)

    By default, the value of the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable.

  • :http_open_timeout (Float) — default: 5
  • :http_read_timeout (Float) — default: 5
  • :delay (Numeric, Proc)

    By default, failures are retried with exponential back-off, i.e. sleep(1.2 ** num_failures). You can pass a number of seconds to sleep between failed attempts, or a Proc that accepts the number of failures.

  • :http_debug_output (IO) — default: nil

    HTTP wire traces are sent to this object. You can specify something like $stdout.

  • before_refresh (Callable)

    Proc called before credentials are refreshed. before_refresh is called with an instance of this object when AWS credentials are required and need to be refreshed.



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'gems/aws-sdk-core/lib/aws-sdk-core/ecs_credentials.rb', line 55

def initialize options = {}
  @retries = options[:retries] || 5
  @ip_address = options[:ip_address] || '169.254.170.2'
  @port = options[:port] || 80
  @credential_path = options[:credential_path]
  @credential_path ||= ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI']
  unless @credential_path
    raise ArgumentError.new(
      "Cannot instantiate an ECS Credential Provider without a credential path."
    )
  end
  @http_open_timeout = options[:http_open_timeout] || 5
  @http_read_timeout = options[:http_read_timeout] || 5
  @http_debug_output = options[:http_debug_output]
  @backoff = backoff(options[:backoff])
  @async_refresh = false
  super
end

Instance Attribute Details

#retriesInteger (readonly)

Returns The number of times to retry failed attempts to fetch credentials from the instance metadata service. Defaults to 0.

Returns:

  • (Integer)

    The number of times to retry failed attempts to fetch credentials from the instance metadata service. Defaults to 0.



76
77
78
# File 'gems/aws-sdk-core/lib/aws-sdk-core/ecs_credentials.rb', line 76

def retries
  @retries
end