in pkg/aws/cloud.go [54:96]
func NewCloud(log gwlog.Logger, cfg CloudConfig, metricsRegisterer prometheus.Registerer) (Cloud, error) {
sess, err := session.NewSession()
if err != nil {
return nil, err
}
sess.Handlers.Complete.PushFront(func(r *request.Request) {
if r.Error != nil {
log.Debugw(context.TODO(), "error",
"error", r.Error.Error(),
"serviceName", r.ClientInfo.ServiceName,
"operation", r.Operation.Name,
"params", r.Params,
)
} else {
log.Debugw(context.TODO(), "response",
"serviceName", r.ClientInfo.ServiceName,
"operation", r.Operation.Name,
"params", r.Params,
)
}
})
if metricsRegisterer != nil {
metricsCollector, err := metrics.NewCollector(metricsRegisterer)
if err != nil {
return nil, err
}
metricsCollector.InjectHandlers(&sess.Handlers)
}
lattice := services.NewDefaultLattice(sess, cfg.AccountId, cfg.Region)
var tagging services.Tagging
if cfg.TaggingServiceAPIDisabled {
tagging = services.NewLatticeTagging(sess, cfg.AccountId, cfg.Region, cfg.VpcId)
} else {
tagging = services.NewDefaultTagging(sess, cfg.Region)
}
cl := NewDefaultCloudWithTagging(lattice, tagging, cfg)
return cl, nil
}