or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

advanced-configuration.mdconfiguration-loading.mdenvironment-configuration.mdindex.mdload-options.mdregion-configuration.mdshared-config-advanced.mdshared-config.md
tile.json

index.mddocs/

AWS SDK for Go v2 - Config Package

The config package provides utilities for loading and managing AWS SDK configuration from multiple sources including environment variables, AWS shared configuration files (/.aws/config), and AWS shared credentials files (/.aws/credentials). It offers the primary LoadDefaultConfig function that loads configuration from all supported SDK sources and resolves credentials using the SDK's default credential chain.

Package Information

  • Package Name: github.com/aws/aws-sdk-go-v2/config
  • Package Type: go
  • Language: Go
  • Installation: go get github.com/aws/aws-sdk-go-v2/config@v1.32.2

Core Imports

import (
    "context"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/aws"
)

Basic Usage

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go-v2/config"
)

func main() {
    // Load default configuration
    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Fatalf("unable to load SDK config, %v", err)
    }

    // Configuration is now ready to use with AWS service clients
    fmt.Printf("Region: %s\n", cfg.Region)
}

Capabilities

Configuration Loading

Load AWS SDK configuration from environment variables and shared config files with customizable options.

func LoadDefaultConfig(ctx context.Context, optFns ...func(*LoadOptions) error) (cfg aws.Config, err error)

Configuration Loading

Environment Configuration

Retrieve AWS configuration from environment variables.

type EnvConfig struct {
    Credentials                      aws.Credentials
    ContainerCredentialsEndpoint     string
    ContainerCredentialsRelativePath string
    ContainerAuthorizationToken      string
    Region                           string
    SharedConfigProfile              string
    SharedCredentialsFile            string
    SharedConfigFile                 string
    CustomCABundle                   string
    EnableEndpointDiscovery          aws.EndpointDiscoveryEnableState
    WebIdentityTokenFilePath         string
    RoleARN                          string
    RoleSessionName                  string
    S3UseARNRegion                   *bool
    EC2IMDSClientEnableState         imds.ClientEnableState
    EC2IMDSv1Disabled                *bool
    EC2IMDSEndpointMode              imds.EndpointModeState
    EC2IMDSEndpoint                  string
    S3DisableMultiRegionAccessPoints *bool
    UseDualStackEndpoint             aws.DualStackEndpointState
    UseFIPSEndpoint                  aws.FIPSEndpointState
    DefaultsMode                     aws.DefaultsMode
    RetryMaxAttempts                 int
    RetryMode                        aws.RetryMode
    AppID                            string
    IgnoreConfiguredEndpoints        *bool
    BaseEndpoint                     string
    DisableRequestCompression        *bool
    RequestMinCompressSizeBytes      *int64
    S3DisableExpressAuth             *bool
    AccountIDEndpointMode            aws.AccountIDEndpointMode
}

func NewEnvConfig() (EnvConfig, error)

Environment Configuration

Load Options

Configure the behavior of LoadDefaultConfig using functional options.

type LoadOptions struct {
    Region                           string
    Credentials                      aws.CredentialsProvider
    BearerAuthTokenProvider          smithybearer.TokenProvider
    HTTPClient                       HTTPClient
    EndpointResolver                 aws.EndpointResolver
    EndpointResolverWithOptions      aws.EndpointResolverWithOptions
    RetryMaxAttempts                 int
    RetryMode                        aws.RetryMode
    Retryer                          func() aws.Retryer
    APIOptions                       []func(*middleware.Stack) error
    Logger                           logging.Logger
    ClientLogMode                    *aws.ClientLogMode
    SharedConfigProfile              string
    SharedConfigFiles                []string
    SharedCredentialsFiles           []string
    CustomCABundle                   io.Reader
    DefaultRegion                    string
    UseEC2IMDSRegion                 *UseEC2IMDSRegion
    CredentialsCacheOptions          func(*aws.CredentialsCacheOptions)
    BearerAuthTokenCacheOptions      func(*smithybearer.TokenCacheOptions)
    SSOTokenProviderOptions          func(*ssocreds.SSOTokenProviderOptions)
    ProcessCredentialOptions         func(*processcreds.Options)
    EC2RoleCredentialOptions         func(*ec2rolecreds.Options)
    EndpointCredentialOptions        func(*endpointcreds.Options)
    WebIdentityRoleCredentialOptions func(*stscreds.WebIdentityRoleOptions)
    AssumeRoleCredentialOptions      func(*stscreds.AssumeRoleOptions)
    SSOProviderOptions               func(*ssocreds.Options)
    LogConfigurationWarnings         *bool
    S3UseARNRegion                   *bool
    S3DisableMultiRegionAccessPoints *bool
    EnableEndpointDiscovery          aws.EndpointDiscoveryEnableState
    EC2IMDSClientEnableState         imds.ClientEnableState
    EC2IMDSEndpointMode              imds.EndpointModeState
    EC2IMDSEndpoint                  string
    UseDualStackEndpoint             aws.DualStackEndpointState
    UseFIPSEndpoint                  aws.FIPSEndpointState
    DefaultsModeOptions              DefaultsModeOptions
    AppID                            string
    DisableRequestCompression        *bool
    RequestMinCompressSizeBytes      *int64
    S3DisableExpressAuth             *bool
    AccountIDEndpointMode            aws.AccountIDEndpointMode
}

type LoadOptionsFunc func(*LoadOptions) error

Load Options and Functional Options

Shared Configuration Files

Access default file paths and manage AWS shared configuration and credentials files.

func DefaultSharedConfigFilename() string
func DefaultSharedCredentialsFilename() string

var DefaultSharedConfigFiles []string
var DefaultSharedCredentialsFiles []string

const DefaultSharedConfigProfile = "default"

Shared Configuration Files

Advanced Shared Configuration

Direct access to shared configuration file structures for advanced scenarios.

func LoadSharedConfigProfile(ctx context.Context, profile string, optFns ...func(*LoadSharedConfigOptions)) (SharedConfig, error)

type SharedConfig struct {
    Profile                          string
    Region                           string
    Credentials                      aws.Credentials
    RoleARN                          string
    SSOSessionName                   string
    // And 30+ additional fields
}

type LoadSharedConfigOptions struct {
    CredentialsFiles []string
    ConfigFiles      []string
    Logger           logging.Logger
}

type SSOSession struct {
    Name        string
    SSORegion   string
    SSOStartURL string
}

type Services struct {
    ServiceValues map[string]map[string]string
}

Advanced Shared Configuration

Region Configuration

Configure region resolution from EC2 Instance Metadata Service.

type UseEC2IMDSRegion struct {
    Client *imds.Client
}

Region Configuration

Advanced Configuration

Configure SDK defaults mode and other advanced options.

type DefaultsModeOptions struct {
    Mode       aws.DefaultsMode
    IMDSClient *imds.Client
}

type HTTPClient interface {
    Do(*http.Request) (*http.Response, error)
}

Advanced Configuration

Error Types

type AssumeRoleTokenProviderNotSetError struct{}

func (e AssumeRoleTokenProviderNotSetError) Error() string

type CredentialRequiresARNError struct {
    Type    string
    Profile string
}

func (e CredentialRequiresARNError) Error() string

type SharedConfigLoadError struct{}
func (e SharedConfigLoadError) Error() string
func (e SharedConfigLoadError) Unwrap() error

type SharedConfigAssumeRoleError struct{}
func (e SharedConfigAssumeRoleError) Error() string
func (e SharedConfigAssumeRoleError) Unwrap() error

type SharedConfigProfileNotExistError struct{}
func (e SharedConfigProfileNotExistError) Error() string
func (e SharedConfigProfileNotExistError) Unwrap() error

Constants

const (
    DefaultSharedConfigProfile = "default"
)

const CredentialsSourceName = "EnvConfigCredentials"

Variables

var DefaultSharedConfigFiles = []string{
    DefaultSharedConfigFilename(),
}

var DefaultSharedCredentialsFiles = []string{
    DefaultSharedCredentialsFilename(),
}