You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
Apollo config centry
This module implements the config.Source
interface in kratos based apollo config management center.
Quick start
import (
"fmt"
"log"
"github.com/go-kratos/kratos/contrib/config/apollo/v2"
"github.com/go-kratos/kratos/v2/config"
)
func main() {
c := config.New(
config.WithSource(
apollo.NewSource(
apollo.WithAppID("kratos"),
apollo.WithCluster("dev"),
apollo.WithEndpoint("http://localhost:8080"),
apollo.WithNamespace("application,event.yaml,demo.json"),
apollo.WithEnableBackup(),
apollo.WithSecret("ad75b33c77ae4b9c9626d969c44f41ee"),
),
),
)
var bc bootstrap
if err := c.Load(); err != nil {
panic(err)
}
// use value and watch operations,help yourself.
}
Options list
You get what you see.
// specify the app id
func WithAppID(appID string) Option
// specify the cluster of application
func WithCluster(cluster string) Option
// enable backup or not, and where to back up them.
func WithBackupPath(backupPath string) Option
func WithDisableBackup() Option
func WithEnableBackup() Option
// specify apollo endpoint, such as http://localhost:8080
func WithEndpoint(endpoint string) Option
// namespaces to load, comma to separate.
func WithNamespace(name string) Option
// secret is the apollo secret key to access application config.
func WithSecret(secret string) Option
Notice
apollo config center use Namespace
to be part of the key. For example:
application.json
{
"http": {
"address": ":8080",
"tls": {
"enable": false,
"cert_file": "",
"key_file": ""
}
}
}
you got them in kratos config instance maybe look like:
config := map[string]interface{}{
// application be part of the key path.
"application": map[string]interface{}{
"http": map[string]interface{}{
"address": ":8080",
"tls": map[string]interface{}{
"enable": false,
"cert_file": "",
"key_file": ""
}
}
}
}