38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package alidns
|
|||
|
|
|
||
|
|
import (
|
||
|
|
alidns "github.com/alibabacloud-go/alidns-20150109/v5/client"
|
||
|
|
openapi "github.com/alibabacloud-go/darabonba-openapi/client"
|
||
|
|
"github.com/alibabacloud-go/tea/tea"
|
||
|
|
"github.com/aliyun/credentials-go/credentials"
|
||
|
|
"github.com/ssdomei232/goodBaby/handler/db"
|
||
|
|
"github.com/ssdomei232/goodBaby/model"
|
||
|
|
)
|
||
|
|
|
||
|
|
func GetAliDNSClient(rule *model.Rule) (client *alidns.Client, err error) {
|
||
|
|
var accountConfig AliDNSAccount
|
||
|
|
|
||
|
|
// get config
|
||
|
|
if err := db.LoadAccountConfig(rule.AccountID, &accountConfig); err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
|
||
|
|
// init aliyun account config
|
||
|
|
credentialsConfig := new(credentials.Config).
|
||
|
|
SetType("access_key").
|
||
|
|
SetAccessKeyId(accountConfig.AK).
|
||
|
|
SetAccessKeySecret(accountConfig.SK)
|
||
|
|
akCredential, err := credentials.NewCredential(credentialsConfig)
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
config := &openapi.Config{}
|
||
|
|
config.Credential = akCredential
|
||
|
|
config.Endpoint = tea.String("alidns.aliyuncs.com")
|
||
|
|
|
||
|
|
// create aliyun account client
|
||
|
|
client, _ = alidns.NewClient(config)
|
||
|
|
|
||
|
|
return client, nil
|
||
|
|
}
|