一、功能说明
参数说明
| 参数 | 说明 |
| Python 版本 | 支持 Python 2 和 Python 3。 |
二、使用场景
希望隐藏 secret_id 和 secret_key,也能获取到在 SSM 中存储的凭据值。
三、使用方式1
系统内置了获取 secret_value 的函数,可直接在 Python 任务中使用,以下是使用示例。
使用 wedatautils.get_secret_value 的参数,打印结果将进行加密。
import wedatautils secret_name = "test_secret_name" #credential nameversion_id = "1.0" #Credential versionregion="ap-guangzhou" #The region where the certificate is locatedsecret_value = wedatautils.get_secret_value(secret_name,version_id,region) #Get credential contentprint("this is"+secret_value)
四、步骤一:在资源组上安装所需 Python 包
1. 进入项目管理 > 项目执行资源组 > 调度资源组,选择调度资源组并单击名称进入详情页。
2. 在资源组运维界面,创建安装包命令,选择需要安装的如下两个安装包,并单击确定。
3. 在安装命令列表操作列中,单击运行,刷新查看状态,状态为运行成功即表示安装成功。
·tencentcloud-sdk-python-common
·tencentcloud-sdk-python-ssm
五、步骤二:配置资源文件
1. 进入离线开发 > 资源管理,完成新建资源并上传资源文件后,单击确定。
2. 使用本地 .py 文件新建资源,例如,资源名为 test_ssm,资源内容如下。
import osfrom tencentcloud.common import credentialfrom tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKExceptionfrom tencentcloud.ssm.v20190923 import ssm_client, modelsdef get_secret_value(secret_name, version_id, region): try: secret_id = os.environ.get('dynamic_secret_id', '') secret_key = os.environ.get('dynamic_secret_key', '') dynamic_token = os.environ.get('dynamic_token', '') # Initialize a credential object cred = credential.Credential(secret_id, secret_key,dynamic_token) # Initialize the client object for the product (ssm) client = ssm_client.SsmClient(cred, region) # Initialize a request object req = models.GetSecretValueRequest() # Set the credential name req.SecretName = secret_name req.VersionId = version_id # Send request resp = client.GetSecretValue(req) # Output JSON format response #print(resp.to_json_string()) # Return the credential value return resp.SecretString except TencentCloudSDKException as err: print(f"Error occurred: {err}") return None
六、步骤三:在 Python 任务中获取 SSM 凭据内容
在 Python 任务中引用该资源。
·在 Python 任务代码中获取凭据内容的方式,示例代码如下所示:
import osfrom test_ssm import get_secret_value #test_ssm is the resource namesecret_name = "test_lola" #Credential Nameversion_id = "1.0" #Credential Versionregion="ap-singapore" #the region of Credentialsecret_value = get_secret_value(secret_name,version_id,region) #Get the credential contentprint(secret_value)##@resource_reference("test_ssm")