// NewDNSProvider returns a DNSProvider instance configured for the AWS // Route 53 service. // // AWS Credentials are automatically detected in the following locations // and prioritized in the following order: // 1. Environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, // AWS_REGION, [AWS_SESSION_TOKEN] // 2. Shared credentials file (defaults to ~/.aws/credentials) // 3. Amazon EC2 IAM role // // See also: https://github.com/aws/aws-sdk-go/wiki/configuring-sdk func NewDNSProvider() (*DNSProvider, error) { r := customRetryer{} r.NumMaxRetries = maxRetries config := request.WithRetryer(aws.NewConfig(), r) client := route53.New(session.New(config)) return &DNSProvider{client: client}, nil }
// NewTransport gives new resilient transport for the given ClientOptions. func NewTransport(opts *ClientOptions) *aws.Config { cfg := aws.NewConfig().WithHTTPClient(httputil.DefaultRestClient(opts.Debug)) retryer := &transportRetryer{ MaxTries: 3, } if opts.Log != nil { retryer.Log = opts.Log.New("transport") } return request.WithRetryer(cfg, retryer) }