Documentation
¶
Overview ¶
Package session provides a way to create service clients with shared configuration and handlers.
Generally this package should be used instead of the `defaults` package.
A session should be used to share configurations and request handlers between multiple service clients. When service clients need specific configuration aws.Config can be used to provide additional configuration directly to the service client.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Session ¶
type Session struct {
Config *aws.Config
Handlers request.Handlers
}
A Session provides a central location to create service clients from and store configurations and request handlers for those services.
Sessions are safe to create service clients concurrently, but it is not safe to mutate the session concurrently.
func New ¶
func New(cfgs ...*aws.Config) *Session
New creates a new instance of the handlers merging in the provided Configs on top of the SDK's default configurations. Once the session is created it can be mutated to modify Configs or Handlers. The session is safe to be read concurrently, but it should not be written to concurrently.
Example:
// Create a session with the default config and request handlers.
sess := session.New()
// Create a session with a custom region
sess := session.New(&aws.Config{Region: aws.String("us-east-1")})
// Create a session, and add additional handlers for all service
// clients created with the session to inherit. Adds logging handler.
sess := session.New()
sess.Handlers.Send.PushFront(func(r *request.Request) {
// Log every request made and its payload
logger.Println("Request: %s/%s, Payload: %s", r.ClientInfo.ServiceName, r.Operation, r.Params)
})
// Create a S3 client instance from a session
sess := session.New()
svc := s3.New(sess)
func (*Session) ClientConfig ¶
func (s *Session) ClientConfig(serviceName string, cfgs ...*aws.Config) client.Config
ClientConfig satisfies the client.ConfigProvider interface and is used to configure the service client instances. Passing the Session to the service client's constructor (New) will use this method to configure the client.
Example:
sess := session.New() s3.New(sess)
func (*Session) Copy ¶
func (s *Session) Copy(cfgs ...*aws.Config) *Session
Copy creates and returns a copy of the current session, coping the config and handlers. If any additional configs are provided they will be merged on top of the session's copied config.
Example:
// Create a copy of the current session, configured for the us-west-2 region.
sess.Copy(&aws.Config{Region: aws.String("us-west-2"})