

Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. [AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SDK for Python (Boto3)을 사용한 Secrets Manager 예제
<a name="python_3_secrets-manager_code_examples"></a>

다음 코드 예제에서는 Secrets Manager와 AWS SDK for Python (Boto3) 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접 호출하는 방법을 보여주며, 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

*시나리오*는 동일한 서비스 내에서 또는 다른 AWS 서비스와 결합된 상태에서 여러 함수를 직접적으로 호출하여 특정 태스크를 수행하는 방법을 보여주는 코드 예제입니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)
+ [시나리오](#scenarios)

## 작업
<a name="actions"></a>

### `BatchGetSecretValue`
<a name="secrets-manager_BatchGetSecretValue_python_3_topic"></a>

다음 코드 예시는 `BatchGetSecretValue`의 사용 방법을 보여줍니다.

**SDK for Python(Boto3)**  
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/secretsmanager#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

```
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 세부 정보는 **AWS SDK for Python(Boto3) API 참조의 [BatchGetSecretValue](https://docs.aws.amazon.com/goto/boto3/secretsmanager-2017-10-17/BatchGetSecretValue)를 참조하세요.

### `GetSecretValue`
<a name="secrets-manager_GetSecretValue_python_3_topic"></a>

다음 코드 예시는 `GetSecretValue`의 사용 방법을 보여줍니다.

**SDK for Python(Boto3)**  
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/secretsmanager#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

```
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 세부 정보는 *AWS SDK for Python (Boto3) API 참조*의 [GetSecretValue](https://docs.aws.amazon.com/goto/boto3/secretsmanager-2017-10-17/GetSecretValue)를 참조하세요.

## 시나리오
<a name="scenarios"></a>

### 대출 라이브러리 REST API 생성
<a name="cross_AuroraRestLendingLibrary_python_3_topic"></a>

다음 코드 예제에서는 Amazon Aurora 데이터베이스가 지원하는 REST API를 사용하여 고객이 도서를 빌리고 반납할 수 있는 대출 라이브러리를 생성하는 방법을 보여줍니다.

**SDK for Python(Boto3)**  
 Amazon Relational Database Service(RDS) API 및 AWS Chalice와 AWS SDK for Python (Boto3) 함께를 사용하여 Amazon Aurora 데이터베이스에서 지원하는 REST API를 생성하는 방법을 보여줍니다. 웹 서비스는 완전히 서버리스이며 고객이 책을 빌리고 반납할 수 있는 간단한 대출 라이브러리를 나타냅니다. 다음 작업을 수행하는 방법에 대해 알아보세요.  
+ 서버리스 Aurora 데이터베이스 클러스터를 생성하고 관리합니다.
+  AWS Secrets Manager 를 사용하여 데이터베이스 자격 증명을 관리합니다.
+ Amazon RDS를 사용하여 데이터를 데이터베이스 내부 및 외부로 이동하는 데이터 스토리지 계층을 구현합니다.
+  AWS Chalice를 사용하여 서버리스 REST API를 Amazon API Gateway 및에 배포합니다 AWS Lambda.
+ 요청 패키지를 사용하여 웹 서비스에 요청을 보냅니다.
 전체 소스 코드와 설정 및 실행 방법에 대한 지침은 [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/cross_service/aurora_rest_lending_library)에서 전체 예제를 참조하세요.  

**이 예제에서 사용되는 서비스**
+ API Gateway
+ Aurora
+ Lambda
+ Secrets Manager 