AWS Parameters and Secrets Lambda Extension 是一种用于在 Lambda 函数中安全地存储和管理敏感数据和参数的工具。它可以将这些数据保存在 Amazon SSM Parameter Store 和 AWS Secrets Manager 中,并使函数能够从这些存储中获取这些值而无需在代码中明文存储。
以下是一个使用 AWS Parameters and Secrets Lambda Extension 获取并使用参数的示例代码:
import os
import boto3
from aws_lambda_powertools.parameters import SecretsManager, SSMParamStore
def lambda_handler(event, context):
# 获取 Secrets Manager 中的值
db_username = SecretsManager.get_secret("db_username")
db_password = SecretsManager.get_secret("db_password")
# 获取 SSM Parameter Store 中的值
api_key = SSMParamStore.get_parameter("api_key")
# 在代码中使用这些值
conn = psycopg2.connect(
host=os.environ["db_host"],
port=os.environ["db_port"],
database=os.environ["db_name"],
user=db_username,
password=db_password
)
response = requests.get(
url="https://example.com/api",
headers={"Authorization": f"Bearer {api_key}"}
)
return response.json()
这段代码使用 aws_lambda_powertools 包中的 SecretsManager 和 SSMParamStore 类来从存储中获取值,并使用它们来建立数据库连接和发送 API 请求。Lambda 函数配置需要将 AWS Parameters and Secrets Lambda Extension 添加为层。