func NewCloud()

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
}