AWS SDK for Go v2 with 130+ service clients, Request/Send pattern, and context support.
aws/endpoints)Import: github.com/aws/aws-sdk-go-v2/aws/endpoints
Provides region and endpoint metadata for all AWS services, with the ability to enumerate partitions, regions, and services, and to use custom endpoints.
func NewDefaultResolver() *Resolver
func DefaultPartitions() Partitionsresolver := endpoints.NewDefaultResolver()
cfg.EndpointResolver = resolver
// Enumerate partitions
for _, p := range resolver.Partitions() {
fmt.Println(p.ID()) // "aws", "aws-cn", "aws-us-gov"
for id := range p.Regions() {
fmt.Println(" Region:", id)
}
}type Resolver struct {
ResolveOptions
// unexported fields
}
type ResolveOptions struct {
DisableSSL bool // force HTTP instead of HTTPS
UseDualStack bool // resolve dualstack endpoints
StrictMatching bool // return error for unknown services/regions
}
func NewDefaultResolver() *Resolver
func DecodeModel(r io.Reader, optFns ...func(*DecodeModelOptions)) (*Resolver, error)
func (r *Resolver) ResolveEndpoint(service, region string) (aws.Endpoint, error)
func (r *Resolver) Partitions() Partitionstype DecodeModelOptions struct {
// unexported fields
}type Partitions []Partition
func DefaultPartitions() Partitions
func (ps Partitions) ForPartition(id string) (Partition, bool)
func (ps Partitions) ForRegion(id string) (Partition, bool)type Partition struct {
// unexported fields
}
func (p Partition) ID() string
func (p Partition) Regions() map[string]Region
func (p Partition) Services() map[string]Service
func (p Partition) RegionsForService(id string) (map[string]Region, bool)
func (p Partition) EndpointFor(service, region string, opts ...func(*ResolveOptions)) (aws.Endpoint, error)
func (p Partition) Resolver() *Resolvertype Region struct {
// unexported fields
}
func (r Region) ID() string
func (r Region) Services() map[string]Service
func (r Region) Endpoint(service string, opts ResolveOptions) (aws.Endpoint, error)type Service struct {
// unexported fields
}
func (s Service) ID() string
func (s Service) Regions() map[string]Region
func (s Service) Endpoints() map[string]Endpoint
func (s Service) Endpoint(region string, opts ResolveOptions) (aws.Endpoint, error)const (
AwsPartitionID = "aws" // AWS Standard
AwsCnPartitionID = "aws-cn" // AWS China
AwsUsGovPartitionID = "aws-us-gov" // AWS GovCloud (US)
)const (
ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo)
ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul)
ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai)
ApSoutheast1RegionID = "ap-southeast-1" // Asia Pacific (Singapore)
ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney)
CaCentral1RegionID = "ca-central-1" // Canada (Central)
EuCentral1RegionID = "eu-central-1" // EU (Frankfurt)
EuWest1RegionID = "eu-west-1" // EU (Ireland)
EuWest2RegionID = "eu-west-2" // EU (London)
EuWest3RegionID = "eu-west-3" // EU (Paris)
SaEast1RegionID = "sa-east-1" // South America (Sao Paulo)
UsEast1RegionID = "us-east-1" // US East (N. Virginia)
UsEast2RegionID = "us-east-2" // US East (Ohio)
UsWest1RegionID = "us-west-1" // US West (N. California)
UsWest2RegionID = "us-west-2" // US West (Oregon)
)const (
CnNorth1RegionID = "cn-north-1" // China (Beijing)
CnNorthwest1RegionID = "cn-northwest-1" // China (Ningxia)
)const UsGovWest1RegionID = "us-gov-west-1" // GovCloud (US)Use with custom endpoint resolvers to match specific services.
const (
A4bServiceID = "a4b"
AcmServiceID = "acm"
AcmPcaServiceID = "acm-pca"
ApigatewayServiceID = "apigateway"
ApplicationAutoscalingServiceID = "application-autoscaling"
AthenaServiceID = "athena"
AutoscalingServiceID = "autoscaling"
BatchServiceID = "batch"
BudgetsServiceID = "budgets"
Cloud9ServiceID = "cloud9"
CloudformationServiceID = "cloudformation"
CloudfrontServiceID = "cloudfront"
CloudhsmServiceID = "cloudhsm"
Cloudhsmv2ServiceID = "cloudhsmv2"
CloudtrailServiceID = "cloudtrail"
CodebuildServiceID = "codebuild"
CodecommitServiceID = "codecommit"
CodedeployServiceID = "codedeploy"
CodepipelineServiceID = "codepipeline"
CognitoIdentityServiceID = "cognito-identity"
CognitoIdpServiceID = "cognito-idp"
ComprehendServiceID = "comprehend"
ConfigServiceID = "config"
DaxServiceID = "dax"
DirectconnectServiceID = "directconnect"
DynamodbServiceID = "dynamodb"
Ec2ServiceID = "ec2"
Ec2metadataServiceID = "ec2metadata"
EcrServiceID = "ecr"
EcsServiceID = "ecs"
ElasticacheServiceID = "elasticache"
ElasticbeanstalkServiceID = "elasticbeanstalk"
ElasticfilesystemServiceID = "elasticfilesystem"
ElasticloadbalancingServiceID = "elasticloadbalancing"
ElasticmapreduceServiceID = "elasticmapreduce"
FirehoseServiceID = "firehose"
GlacierServiceID = "glacier"
GlueServiceID = "glue"
GuarddutyServiceID = "guardduty"
HealthServiceID = "health"
IamServiceID = "iam"
InspectorServiceID = "inspector"
IotServiceID = "iot"
KinesisServiceID = "kinesis"
KmsServiceID = "kms"
LambdaServiceID = "lambda"
LogsServiceID = "logs"
MonitoringServiceID = "monitoring"
OrganizationsServiceID = "organizations"
PinpointServiceID = "pinpoint"
PollyServiceID = "polly"
RdsServiceID = "rds"
RedshiftServiceID = "redshift"
RekognitionServiceID = "rekognition"
Route53ServiceID = "route53"
S3ServiceID = "s3"
SagemakerServiceID = "sagemaker"
SecretManagerServiceID = "secretsmanager"
SnsServiceID = "sns"
SqsServiceID = "sqs"
SsmServiceID = "ssm"
StsServiceID = "sts"
// ... many more
)type UnknownServiceError struct {
Partition string
Service string
Known []string // list of known service IDs in the partition
// unexported fields
}
func NewUnknownServiceError(p, s string, known []string) UnknownServiceError
func (e UnknownServiceError) Error() string
func (e UnknownServiceError) String() string
type UnknownEndpointError struct {
Partition string
Service string
Region string
Known []string // list of known regions for the service
// unexported fields
}
func NewUnknownEndpointError(p, s, r string, known []string) UnknownEndpointError
func (e UnknownEndpointError) Error() string
func (e UnknownEndpointError) String() stringimport (
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/aws/endpoints"
"github.com/aws/aws-sdk-go-v2/aws/external"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
cfg, _ := external.LoadDefaultAWSConfig()
cfg.Region = "us-east-1"
// Override S3 endpoint only (e.g., for LocalStack)
defaultResolver := endpoints.NewDefaultResolver()
cfg.EndpointResolver = aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
if service == endpoints.S3ServiceID {
return aws.Endpoint{
URL: "http://localhost:4566",
SigningRegion: region,
}, nil
}
return defaultResolver.ResolveEndpoint(service, region)
})
svc := s3.New(cfg)Use aws.ResolveWithEndpointURL or aws.ResolveWithEndpoint for simple static overrides:
// From package github.com/aws/aws-sdk-go-v2/aws
type ResolveWithEndpoint Endpoint
func ResolveWithEndpointURL(url string) ResolveWithEndpoint
func (v ResolveWithEndpoint) ResolveEndpoint(service, region string) (Endpoint, error)cfg.EndpointResolver = aws.ResolveWithEndpointURL("https://my-endpoint.example.com")Install with Tessl CLI
npx tessl i tessl/golang-github-com--aws--aws-sdk-go-v2