in pkg/ec2pricing/ec2pricing.go [102:120]
func (p *EC2Pricing) GetSpotInstanceTypeNDayAvgCost(ctx context.Context, instanceType ec2types.InstanceType, availabilityZones []string, days int) (float64, error) {
if len(availabilityZones) == 0 {
return p.SpotPricing.Get(ctx, instanceType, "", days)
}
costs := []float64{}
var errs error
for _, zone := range availabilityZones {
cost, err := p.SpotPricing.Get(ctx, instanceType, zone, days)
if err != nil {
errs = multierr.Append(errs, err)
}
costs = append(costs, cost)
}
if len(multierr.Errors(errs)) == len(availabilityZones) {
return -1, errs
}
return costs[0], nil
}