Я настраиваю сервер go в docker на машине ec2, этот сервер использует модуль aws-sdk-go для звонков в API AWS.Этот двоичный файл, созданный из следующего кода, дает проблемы с сертификатом при работе внутри контейнера.
Тот же двоичный файл работает нормально и дает ожидаемый результат при работе на хост-компьютере.
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/autoscaling"
)
func main() {
svc := autoscaling.New(session.New(), aws.NewConfig().WithRegion("us-east-1"))
input := &autoscaling.DescribeAutoScalingGroupsInput{
AutoScalingGroupNames: []*string{
aws.String("spark-worker-asg"),
},
}
result, err := svc.DescribeAutoScalingGroups(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case autoscaling.ErrCodeInvalidNextToken:
fmt.Println(autoscaling.ErrCodeInvalidNextToken, aerr.Error())
case autoscaling.ErrCodeResourceContentionFault:
fmt.Println(autoscaling.ErrCodeResourceContentionFault, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
Журналы ошибок:
RequestError: send request failed
caused by: Post https://autoscaling.us-east-1.amazonaws.com/: x509: certificate signed by unknown authority