使用 SDK for Python 的 Secrets Manager 範例 (Boto3) - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SDK for Python 的 Secrets Manager 範例 (Boto3)

下列程式碼範例示範如何搭配 AWS SDK for Python (Boto3) Secrets Manager 使用 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

案例是程式碼範例,示範如何透過呼叫服務內的多個函數或與其他函數結合來完成特定任務 AWS 服務。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

動作

下列程式碼範例示範如何使用 BatchGetSecretValue

SDK for Python (Boto3)
注意

還有更多 on 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 SDK for Python (Boto3) Word 參考中的 API

下列程式碼範例示範如何使用 GetSecretValue

SDK for Python (Boto3)
注意

還有更多 on 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 SDK for Python (Boto3) Word 參考中的 API

案例

下列程式碼範例示範如何建立貸款程式庫,讓訪客可以使用 Amazon Aurora 資料庫支援的 REST API借用和歸還書籍。

SDK for Python (Boto3)

示範如何 AWS SDK for Python (Boto3) 搭配 Amazon Relational Database Service (Amazon RDS) API 和 AWS Chalice 使用 來建立 Amazon Aurora 資料庫支援的 REST API。Web 服務是完全無伺服器的,表示這是一種贊助人可以借書與還書的簡單出借圖書館。了解如何:

  • 建立與管理無伺服器的 Aurora 資料庫叢集。

  • 使用 AWS Secrets Manager 管理資料庫憑證。

  • 實作使用 Amazon RDS 將資料移入和移出資料庫的資料儲存層。

  • 使用 AWS Chalice 將無伺服器 REST API 部署至 Amazon API Gateway 和 AWS Lambda。

  • 使用 Request 套件來將請求傳送到 Web 服務。

如需完整的原始程式碼和如何設定和執行的指示,請參閱 GitHub 上的完整範例。

此範例中使用的服務
  • API Gateway

  • Aurora

  • Lambda

  • Secrets Manager