Python

最近更新时间:2025-04-23 20:48:02

我的收藏

功能说明

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

参数说明
参数
说明
Python 版本
支持 Python 2 和 Python 3。

不使用 secret id&secret key 获取 SSM 凭据内容

使用场景

希望隐藏 secret_id 和 secret_key,也能获取到在 ssm 中存储的凭据 value 值。

使用方式

步骤一:在资源组上安装所需 Python 包

1. 进入项目管理 > 项目执行资源组 > 调度资源组,选择调度资源组并单击名称进入详情页。
2. 在资源组运维界面,创建安装包命令,选择需要安装的如下两个安装包,并单击确定。
3. 在安装命令列表操作列中,单击运行,刷新查看状态,状态为运行成功即表示安装成功。
tencentcloud-sdk-python-common
tencentcloud-sdk-python-ssm


步骤二:配置资源文件

1. 进入离线开发 > 资源管理,完成新建资源后,并上传资源文件后,单击确定
2. 使用本地 .py 文件新建资源,例如,资源名为 test_ssm,资源内容如下。
import os
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ssm.v20190923 import ssm_client, models


def 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 os
from test_ssm import get_secret_value #test_ssm is the resource name

secret_name = "test_lola" #Credential Name
version_id = "1.0" #Credential Version
region="ap-singapore" #the region of Credential
secret_value = get_secret_value(secret_name,version_id,region) #Get the credential content
print(secret_value)