Documentation
¶
Overview ¶
Package config 提供 IAM SDK 的公开配置结构与加载入口。
Index ¶
- Variables
- func GenerateEnvExample(prefix string) string
- func GenerateYAMLExample() string
- type CircuitBreakerConfig
- type ClientOption
- func WithDialOptions(opts ...grpc.DialOption) ClientOption
- func WithDisableDefaultInterceptors() ClientOption
- func WithMetricsCollector(collector MetricsCollector) ClientOption
- func WithStreamInterceptors(interceptors ...grpc.StreamClientInterceptor) ClientOption
- func WithTracingHook(hook TracingHook) ClientOption
- func WithUnaryInterceptors(interceptors ...grpc.UnaryClientInterceptor) ClientOption
- type ClientOptions
- type Config
- type EnvLoader
- type JWKSConfig
- type KeepaliveConfig
- type MetricsCollector
- type ObservabilityConfig
- type RetryConfig
- type ServiceAuthConfig
- type TLSConfig
- type TokenVerifyConfig
- type TracingHook
- type ViperLoader
Constants ¶
This section is empty.
Variables ¶
var (
ErrEndpointRequired = errors.New("config: endpoint is required")
)
配置相关错误
Functions ¶
func GenerateEnvExample ¶
GenerateEnvExample 生成环境变量配置示例。
Types ¶
type CircuitBreakerConfig ¶
type CircuitBreakerConfig struct {
FailureThreshold int
OpenDuration time.Duration
HalfOpenRequests int
SuccessThreshold int
}
CircuitBreakerConfig 熔断器配置。
type ClientOption ¶
type ClientOption func(*ClientOptions)
ClientOption 客户端选项函数
func WithDialOptions ¶
func WithDialOptions(opts ...grpc.DialOption) ClientOption
WithDialOptions 添加 gRPC DialOption
func WithDisableDefaultInterceptors ¶
func WithDisableDefaultInterceptors() ClientOption
WithDisableDefaultInterceptors 禁用默认拦截器
func WithMetricsCollector ¶
func WithMetricsCollector(collector MetricsCollector) ClientOption
WithMetricsCollector 设置自定义 Metrics 收集器
func WithStreamInterceptors ¶
func WithStreamInterceptors(interceptors ...grpc.StreamClientInterceptor) ClientOption
WithStreamInterceptors 添加 Stream 拦截器
func WithTracingHook ¶
func WithTracingHook(hook TracingHook) ClientOption
WithTracingHook 设置 Tracing 钩子
func WithUnaryInterceptors ¶
func WithUnaryInterceptors(interceptors ...grpc.UnaryClientInterceptor) ClientOption
WithUnaryInterceptors 添加 Unary 拦截器
type ClientOptions ¶
type ClientOptions struct {
UnaryInterceptors []grpc.UnaryClientInterceptor
StreamInterceptors []grpc.StreamClientInterceptor
DialOptions []grpc.DialOption
// TracingHook 用户提供的 Tracing 钩子
TracingHook TracingHook
// MetricsCollector 用户提供的 Metrics 收集器(覆盖默认)
MetricsCollector MetricsCollector
// DisableDefaultInterceptors 禁用默认拦截器
DisableDefaultInterceptors bool
}
ClientOptions 客户端选项集合
type Config ¶
type Config struct {
Endpoint string
TLS *TLSConfig
Timeout time.Duration
DialTimeout time.Duration
Keepalive *KeepaliveConfig
Retry *RetryConfig
JWKS *JWKSConfig
Metadata map[string]string
LoadBalancer string
CircuitBreaker *CircuitBreakerConfig
Observability *ObservabilityConfig
}
Config 是 IAM SDK 的主配置结构。
func FromEnvWithPrefix ¶
FromEnvWithPrefix 从带前缀的环境变量加载配置。
func FromViperWithPrefix ¶
FromViperWithPrefix 从 Viper 风格的 getter 加载带前缀的配置。
type EnvLoader ¶
type EnvLoader struct {
// contains filtered or unexported fields
}
EnvLoader 环境变量配置加载器。
type JWKSConfig ¶
type JWKSConfig struct {
URL string
GRPCEndpoint string
RefreshInterval time.Duration
RequestTimeout time.Duration
CacheTTL time.Duration
HTTPClient *http.Client
CustomHeaders map[string]string
FallbackOnError bool
}
JWKSConfig JWKS(JSON Web Key Set)配置。
type KeepaliveConfig ¶
KeepaliveConfig gRPC 连接保活配置。
type MetricsCollector ¶
type MetricsCollector interface {
RecordRequest(method string, code string, duration time.Duration)
}
MetricsCollector 自定义指标收集器接口。
type ObservabilityConfig ¶
type ObservabilityConfig struct {
EnableMetrics bool
EnableTracing bool
EnableCircuitBreaker bool
EnableRequestID bool
MetricsNamespace string
MetricsSubsystem string
ServiceName string
}
ObservabilityConfig 控制 SDK 默认 metrics / tracing / circuit breaker 链路。
func DefaultObservabilityConfig ¶
func DefaultObservabilityConfig() *ObservabilityConfig
DefaultObservabilityConfig 默认可观测性配置。
type RetryConfig ¶
type RetryConfig struct {
Enabled bool
MaxAttempts int
InitialBackoff time.Duration
MaxBackoff time.Duration
BackoffMultiplier float64
RetryableCodes []string
}
RetryConfig 重试配置。
type ServiceAuthConfig ¶
type ServiceAuthConfig struct {
ServiceID string
TargetAudience []string
TokenTTL time.Duration
RefreshBefore time.Duration
}
ServiceAuthConfig 服务间认证配置。
type TLSConfig ¶
type TLSConfig struct {
Enabled bool
CACert string
CACertPEM []byte
ClientCert string
ClientCertPEM []byte
ClientKey string
ClientKeyPEM []byte
ServerName string
InsecureSkipVerify bool
MinVersion uint16
}
TLSConfig TLS/mTLS 配置。
type TokenVerifyConfig ¶
type TokenVerifyConfig struct {
AllowedAudience []string
AllowedIssuer string
ClockSkew time.Duration
RequireExpirationTime bool
ForceRemoteVerification bool
RequiredClaims []string
Algorithms []string
}
TokenVerifyConfig Token 验证配置。
type TracingHook ¶
type TracingHook interface {
StartSpan(ctx context.Context, name string) (context.Context, func())
SetAttributes(ctx context.Context, attrs map[string]string)
RecordError(ctx context.Context, err error)
}
TracingHook Tracing 钩子接口。
type ViperLoader ¶
type ViperLoader struct {
// contains filtered or unexported fields
}
ViperLoader Viper 配置加载器。
func NewViperLoader ¶
func NewViperLoader(getter func(key string) interface{}) *ViperLoader
NewViperLoader 创建 Viper 配置加载器。