import ("github.com/tencentcloud/ssm-rotation-sdk-golang/lib/db""github.com/tencentcloud/ssm-rotation-sdk-golang/lib/ssm")
dbConn = &db.DynamicSecretRotationDb{}err := dbConn.Init(&db.Config{DbConfig: &db.DbConfig{MaxOpenConns: 100,MaxIdleConns: 50,IdleTimeoutSeconds: 100,ReadTimeoutSeconds: 5,WriteTimeoutSeconds: 5,SecretName: "test", // 凭据名IpAddress: "127.0.0.1", // 数据库实例的访问地址Port: 58366, // 数据库实例的访问端口DbName: "database_name", // 指定具体的数据库名,如果为空,则只连接到数据库实例,不连接具体的数据库ParamStr: "charset=utf8&loc=Local", // 数据库连接相关的配置参数},SsmServiceConfig: &ssm.SsmAccount{SecretId: os.Getenv("secret_id"), // 子账号的SecretIdSecretKey: os.Getenv("secret_key"), // 子账号的SecretKeyRegion: "ap-guangzhou", // 选择凭据实际所存储的地域,请根据实际情况填写,示例中给出的是广州地区。},WatchChangeInterval: time.Second * 10, // 监控凭据内容发生变化的间隔,一般间隔时间设置为10秒~60秒之间为宜})
```golangc := dbConn.GetConn() // 警告:每次需要访问数据库时,都需要调用GetConn()来获取最新的DB连接,请不要在业务代码中缓存此对象,以免DB访问失败!if err := c.Ping(); err != nil { // 示例中只是调用ping()方法测试账号密码的可用性。实际业务中,这里就可以执行具体的db操作了。log.Fatal("failed to access db with err: ", err)return}```
```golangc.Close() // 当应用程序退出时,可主动关闭数据库连接。这是个通用的操作,和数据库凭据没有直接关系```
```shellpip install -r requirements.txt```
```pythonWATCH_FREQ = 10 # 监控凭据内容发生变化的间隔,一般间隔时间设置为10秒~60秒之间为宜db_config = DbConfig(params={'secret_name': "test", # 凭据名'ip_address': "127.0.0.1", # 数据库地址'port': 58366, # 数据库端口'db_name': "database_name", # 指定具体的数据库名,如果为空,则只连接到数据库实例,不连接具体的数据库'param_str': "charset=utf8&loc=Local",})ssm_service_config = SsmAccount(params={'secret_id': os.getenv('SECRET_ID'), # 需填写实际可用的SecretId'secret_key': os.getenv('SECRET_KEY'), # 需填写实际可用的SecretKey'url': test_url,'region': "ap-guangzhou" # 选择凭据所存储的地域})config = Config(params={'db_config': db_config,'ssm_service_config': ssm_service_config,'WATCH_FREQ': WATCH_FREQ})```
```pythondb_conn = DynamicSecretRotationDb()err = db_conn.init(config)```
```pythonc = db_conn.get_conn() # 警告:每次需要访问数据库时,都需要调用GetConn()来获取最新的DB连接,请不要在业务代码中缓存此对象,以免DB访问失败!try:c.ping() # 示例中只是调用ping()方法测试账号密码的可用性。实际业务中,这里就可以执行具体的db操作了。except TencentCloudSDKException as e:logging.error("failed to access db with err: {0}".format(str(e.args[0])).encode("utf-8"))```
```pythonc.close() # 当应用程序退出时,可主动关闭数据库连接。这是个通用的操作,和数据库凭据没有直接关系```
文档反馈