func (secret *SSMSecretResource) retrieveSSMSecretValuesByRegion(region string, secrets []apicontainer.Secret, iamCredentials credentials.IAMRoleCredentials, wg *sync.WaitGroup, errorEvents chan error) {
	seelog.Infof("ssm secret resource: retrieving secrets for region %s in task: [%s]", region, secret.taskARN)
	defer wg.Done()

	var wgPerRegion sync.WaitGroup
	var secretNames []string

	for _, s := range secrets {
		secretKey := s.GetSecretResourceCacheKey()
		if _, ok := secret.GetCachedSecretValue(secretKey); ok {
			continue
		}
		secretNames = append(secretNames, s.ValueFrom)
		if len(secretNames) == MaxBatchNum {
			secretNamesTmp := make([]string, MaxBatchNum)
			copy(secretNamesTmp, secretNames)
			wgPerRegion.Add(1)
			go secret.retrieveSSMSecretValues(region, secretNamesTmp, iamCredentials, &wgPerRegion, errorEvents)
			secretNames = []string{}
		}
	}

	if len(secretNames) > 0 {
		wgPerRegion.Add(1)
		go secret.retrieveSSMSecretValues(region, secretNames, iamCredentials, &wgPerRegion, errorEvents)
	}
	wgPerRegion.Wait()
}
func (secret *SSMSecretResource) retrieveSSMSecretValuesByRegion(region string, secrets []apicontainer.Secret, iamCredentials credentials.IAMRoleCredentials, wg *sync.WaitGroup, errorEvents chan error) {
	seelog.Infof("ssm secret resource: retrieving secrets for region %s in task: [%s]", region, secret.taskARN)
	defer wg.Done()

	var wgPerRegion sync.WaitGroup
	var secretNames []string

	for _, s := range secrets {
		secretKey := s.GetSecretResourceCacheKey()
		if _, ok := secret.GetCachedSecretValue(secretKey); ok {
			continue
		}
		secretNames = append(secretNames, s.ValueFrom)
		if len(secretNames) == MaxBatchNum {
			secretNamesTmp := make([]string, MaxBatchNum)
			copy(secretNamesTmp, secretNames)
			wgPerRegion.Add(1)
			go secret.retrieveSSMSecretValues(region, secretNamesTmp, iamCredentials, &wgPerRegion, errorEvents)
			secretNames = []string{}
		}
	}

	if len(secretNames) > 0 {
		wgPerRegion.Add(1)
		go secret.retrieveSSMSecretValues(region, secretNames, iamCredentials, &wgPerRegion, errorEvents)
	}
	wgPerRegion.Wait()
}
func ( secret * SSMSecretResource ) retrieveSSMSecretValuesByRegion ( region string , secrets [ ] apicontainer . Secret , iamCredentials credentials . IAMRoleCredentials , wg * sync . WaitGroup , errorEvents chan error ) { seelog . Infof ( " " , region , secret . taskARN ) defer wg . Done ( ) var wgPerRegion sync . WaitGroup var secretNames [ ] string for _ , s := range secrets { secretKey := s . GetSecretResourceCacheKey ( ) if _ , ok := secret . GetCachedSecretValue ( secretKey ) ; ok { continue } secretNames = append ( secretNames , s . ValueFrom ) if len ( secretNames ) == MaxBatchNum { secretNamesTmp := make ( [ ] string , MaxBatchNum ) copy ( secretNamesTmp , secretNames ) wgPerRegion . Add ( 1 ) go secret . retrieveSSMSecretValues ( region , secretNamesTmp , iamCredentials , & wgPerRegion , errorEvents ) secretNames = [ ] string { } } } if len ( secretNames ) > 0 { wgPerRegion . Add ( 1 ) go secret . retrieveSSMSecretValues ( region , secretNames , iamCredentials , & wgPerRegion , errorEvents ) } wgPerRegion . Wait ( ) }
// retrieveSSMSecretValuesByRegion reads secret values from cache first, if not exists, batches secrets based on field
// valueFrom and call retrieveSSMSecretValues to retrieve values from SSM
retrieveSSMSecretValuesByRegion reads secret values from cache first if not exists batches secrets based on field valueFrom and call retrieveSSMSecretValues to retrieve values from SSM