用SDK于 Python 的 Secrets Manager 示例 (Boto3) - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用SDK于 Python 的 Secrets Manager 示例 (Boto3)

以下代码示例向您展示了如何使用 with Secrets Manager 来执行操作和实现常见场景。 AWS SDK for Python (Boto3)

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

场景是向您展示如何通过在一个服务中调用多个函数或与其他 AWS 服务结合来完成特定任务的代码示例。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

操作

以下代码示例演示如何使用 BatchGetSecretValue

SDK适用于 Python (Boto3)
注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

class BatchGetSecretsWrapper: def __init__(self, secretsmanager_client): self.client = secretsmanager_client def batch_get_secrets(self, filter_name): """ Retrieve multiple secrets from AWS Secrets Manager using the batch_get_secret_value API. This function assumes the stack mentioned in the source code README has been successfully deployed. This stack includes 7 secrets, all of which have names beginning with "mySecret". :param filter_name: The full or partial name of secrets to be fetched. :type filter_name: str """ try: secrets = [] response = self.client.batch_get_secret_value( Filters=[{"Key": "name", "Values": [f"{filter_name}"]}] ) for secret in response["SecretValues"]: secrets.append(json.loads(secret["SecretString"])) if secrets: logger.info("Secrets retrieved successfully.") else: logger.info("Zero secrets returned without error.") return secrets except self.client.exceptions.ResourceNotFoundException: msg = f"One or more requested secrets were not found with filter: {filter_name}" logger.info(msg) return msg except Exception as e: logger.error(f"An unknown error occurred:\n{str(e)}.") raise
  • 有关API详细信息,请参阅BatchGetSecretValue中的 AWS SDKPython (Boto3) API 参考。

以下代码示例演示如何使用 GetSecretValue

SDK适用于 Python (Boto3)
注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

class GetSecretWrapper: def __init__(self, secretsmanager_client): self.client = secretsmanager_client def get_secret(self, secret_name): """ Retrieve individual secrets from AWS Secrets Manager using the get_secret_value API. This function assumes the stack mentioned in the source code README has been successfully deployed. This stack includes 7 secrets, all of which have names beginning with "mySecret". :param secret_name: The name of the secret fetched. :type secret_name: str """ try: get_secret_value_response = self.client.get_secret_value( SecretId=secret_name ) logging.info("Secret retrieved successfully.") return get_secret_value_response["SecretString"] except self.client.exceptions.ResourceNotFoundException: msg = f"The requested secret {secret_name} was not found." logger.info(msg) return msg except Exception as e: logger.error(f"An unknown error occurred: {str(e)}.") raise
  • 有关API详细信息,请参阅GetSecretValue中的 AWS SDKPython (Boto3) API 参考。

场景

以下代码示例演示如何创建借阅图书馆,顾客可以使用由 Amazon Aurora REST API 支持的数据库借阅和还书。

SDK适用于 Python (Boto3)

演示如何将 AWS SDK for Python (Boto3) 与亚马逊关系数据库服务 (AmazonRDS) API 和 AWS Chalice 一起使用来创建由亚马逊 Aurora REST API 支持的数据库。此 Web 服务是完全无服务器的,代表简单的借阅图书馆,其中顾客可以借阅和归还图书。了解如何:

  • 创建和管理无服务器 Aurora 数据库集群。

  • AWS Secrets Manager 用于管理数据库凭证。

  • 实施一个数据存储层,使用 Amazon RDS 将数据移入和移出数据库。

  • 使用 AWS Chalice 将无服务器部署到RESTAPI亚马逊API网关和. AWS Lambda

  • 使用请求软件包向 Web 服务发送请求。

有关如何设置和运行的完整源代码和说明,请参阅上的完整示例GitHub

本示例中使用的服务
  • API网关

  • Aurora

  • Lambda

  • Secrets Manager