功能说明
在节点上编辑 Python 代码,并支持向 WeData 的工作流调度系统提交命令进行调度执行。

参数说明
参数 | 说明 |
Python 版本 | 支持 Python 2 和 Python 3。 |
不使用 secret_id & secret_key 获取 SSM 凭据内容
使用场景
希望隐藏 secret_id 和 secret_key,也能获取到在 SSM 中存储的凭据值。
使用方式1
系统内置了获取 secret_value 的函数,可直接在 Python 任务中使用,以下是使用示例。
使用 wedatautils.get_secret_value 的参数,打印结果将进行加密。
import wedatautilssecret_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)
使用方式2
步骤一:在资源组上安装所需 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 objectcred = 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 objectreq = models.GetSecretValueRequest()# Set the credential namereq.SecretName = secret_namereq.VersionId = version_id# Send requestresp = client.GetSecretValue(req)# Output JSON format response#print(resp.to_json_string())# Return the credential valuereturn resp.SecretStringexcept 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")