python - AWS集成指南
#aws #python #s3 #secretsmanager

使用Amazon Web Services(AWS)平台时,必须了解如何使用Python的AWS SDK与各种服务进行交互(BOTO3)。在本指南中,我们将探讨三个关键组件:为什么将此代码保存在隔离的模块,AWS会话,S3客户端和Secrets Manager客户端中。我们将讨论他们的功能并演示如何使用它们。

内容

将代码放在孤立的模块中

使用AWS服务和BOTO3时,将代码保留在孤立的Python模块中通常是有益的。以下是采用这种做法的一些优势:

  • 模块化:将与AWS相关的代码隔离到单独的模块中会促进模块化和关注点的分离。它使您可以更好地组织代码库并更容易维护和理解。

  • 可重用性:通过将代码保存在专用模块中,您可以在较大的应用程序中跨多个项目或组件重复使用它。这可以通过避免代码重复来节省时间和精力。

  • 封装:将AWS代码隔离到模块中提供封装,以确保与AWS相关的配置和凭据与其他应用程序代码分开。这有助于维护干净安全的代码库。

  • 可检验性:可以轻松地测试一个孤立的模块,以独立于应用程序的其余部分验证其功能。这可以促进更好的测试实践并提高整体代码质量。

  • 可伸缩性:当您的应用程序增长并需要与更多AWS服务互动时,拥有一个隔离的模块可以使您轻松扩展和添加新功能而不会影响代码库的其他部分。

通过遵循将与AWS相关的代码隔离为独立模块的实践,您可以在AWS平台上获得这些好处并创建更强大和可维护的应用程序。

AWS会话

AWS会话是管理状态和与AWS服务交互的配置的关键要素。它封装了凭证,区域和配置文件等信息。要使用BOTO3创建AWS会话,我们首先定义会话参数,其中包括区域名称,AWS访问密钥ID和AWS秘密访问密钥。这些值可以从环境变量中获取安全性和灵活性。然后,我们使用提供的参数创建会话。这是一个例子:

import os

import boto3

"""
---------------------------------------------------------------------------
AWS session
--------------------------------------------------------------------------

Client session that manages state about a particular configuration/account.
Sessions typically store credentials, AWS regions, and other configurations
related to a given profile.

"""

session_args = {}

region_name = os.getenv("AWS_DEFAULT_REGION")
aws_access_key_id = os.getenv("AWS_ACCESS_KEY_ID")
aws_secret_access_key = os.getenv("AWS_SECRET_ACCESS_KEY")

if not region_name and not aws_access_key_id and not aws_secret_access_key:
    session_args = {
        "region_name": region_name,
        "aws_access_key_id": aws_access_key_id,
        "aws_secret_access_key": aws_secret_access_key,
    }

session = boto3.Session(**session_args)

通过建立AWS会话,我们确保随后与AWS服务的交互使用提供的凭据和配置。

S3客户端

S3客户端是与Amazon Simple Storage Service(S3)一起工作的重要组件,该服务是AWS提供的可扩展对象存储服务。 S3客户端允许您执行操作,例如创建存储桶,上传文件,列表对象等。要创建一个S3客户端,我们可以利用我们之前建立的AWS会话。这是一个例子:

"""
---------------------------------------------------------------------------
S3 Client
--------------------------------------------------------------------------

Amazon Simple Storage Service (Amazon S3) is an object storage service.

"""

s3 = session.resource("s3")

现在,您可以使用s3对象与您的S3资源进行交互并根据需要执行各种操作。

Secrets Manager客户客户

AWS Secrets Manager是一项服务,可帮助您安全地存储和管理数据库凭据,API密钥和其他敏感信息等秘密。要与Secrets Manager合作,我们使用AWS会话创建一个Secrets Manager客户端。该客户允许我们在整个生命周期内检索和管理秘密。这是一个例子:

"""
---------------------------------------------------------------------------
Secrets Manager Client
--------------------------------------------------------------------------


AWS Secrets Manager is service to, retrieve, and rotate database credentials,
API keys, and other secrets throughout their lifecycles.

"""

secrets_manager = session.client("secretsmanager")

使用secrets_manager对象,您可以调用各种方法来检索秘密,创建新秘密,更新现有秘密等等,具体取决于您的要求。

最后的想法

了解AWS会话,S3客户端和Secrets Manager客户客户端对于在AWS平台上构建功能强大且安全的应用程序至关重要。在本指南中,我们探讨了这些组件的功能,并演示了如何使用boto3创建它们。通过利用这些工具,您可以有效地与AWS服务进行交互,使用S3管理对象存储,并使用Secrets Manager安全处理秘密。

通过利用boto3和这些AWS组件的功能,您可以在应用程序中解锁AWS服务的全部潜力。尝试提供的代码示例并探索全面的boto3 documentation,以更深入地研究这些组件的能力,并轻松构建强大的AWS集成。


我是巴西工程师杰克·米拉斯

快乐编码!