code: func (c *CrossRequestRetryDelay) BeforeSign(r *request.Request) {
  	now := time.Now()
  	delay := c.backoff.ComputeDelayForRequest(now)
  	if delay > 0 {
  		klog.Warningf("Inserting delay before AWS request (%s) to avoid RequestLimitExceeded: %s",
  			describeRequest(r), delay.String())
  
  		if sleepFn := r.Config.SleepDelay; sleepFn != nil {
  			// Support SleepDelay for backwards compatibility
  			sleepFn(delay)
  		} else if err := aws.SleepWithContext(r.Context(), delay); err != nil {
  			r.Error = awserr.New(request.CanceledErrorCode, "request context canceled", err)
  			r.Retryable = aws.Bool(false)
  			return
  		}
  
  		// Avoid clock skew problems
  		r.Time = now
  	}
  }
docs: // BeforeSign is added to the Sign chain; called before each request