Я пытаюсь отправить электронную почту через Amazon SES на Голанге.Ранее он работал на сервере разработки (без SSL) со следующим кодом:
sess, err := session.NewSession(&aws.Config{
Region:aws.String(AwsRegion)},
)
/* Create an SES client in the session */
svc := ses.New(sess)
/* Assemble the email */
input := &ses.SendEmailInput{
Destination: &ses.Destination{
CcAddresses: []*string{
},
ToAddresses: []*string{
aws.String(request.EmailTo),
},
},
Message: &ses.Message{
Body: &ses.Body{
Html: &ses.Content{
Charset: aws.String(CharSet),
Data: aws.String(body),
},
},
Subject: &ses.Content{
Charset: aws.String(CharSet),
Data: aws.String(subject),
},
},
Source: aws.String("test<test@example.com>"),
}
/* Attempt to send the email */
result, err := svc.SendEmail(input)
Недавно я начал работать на производственном сервере (с SSL), и тот же код начал выдавать мне следующую ошибку:
NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
Я попытался добавить учетные данные в код, например:
creds := credentials.NewCredentials(&ec2rolecreds.EC2RoleProvider{})
/* updated session block with credentials in aws config */
sess, err := session.NewSession(&aws.Config{
Region: aws.String(AwsRegion),
Credentials: creds})
Но этот код не работает (даже не компилируется) и выдает мне следующую ошибку:
/main.go:63:42: undefined: ec2rolecreds
Однако в код я уже включил пакет учетных данных.
Я не понимаю, как добавить учетные данные в этот код, чтобы он работал и на рабочем сервере.Мы будем благодарны за любую помощь.