code: func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
  	if config == nil {
  		return nil, errors.New("alicloud: the configuration of the DNS provider is nil")
  	}
  
  	if config.APIKey == "" || config.SecretKey == "" {
  		return nil, fmt.Errorf("alicloud: credentials missing")
  	}
  
  	if len(config.RegionID) == 0 {
  		config.RegionID = defaultRegionID
  	}
  
  	conf := sdk.NewConfig().WithTimeout(config.HTTPTimeout)
  	credential := credentials.NewAccessKeyCredential(config.APIKey, config.SecretKey)
  
  	client, err := alidns.NewClientWithOptions(config.RegionID, conf, credential)
  	if err != nil {
  		return nil, fmt.Errorf("alicloud: credentials failed: %v", err)
  	}
  
  	return &DNSProvider{config: config, client: client}, nil
  }
docs: // NewDNSProviderConfig return a DNSProvider instance configured for alidns.