亚马逊cdk和boto3的区别

Amazon cdk and boto3 difference

我是 python 的 AWS 新手。我最初遇到了 boto3,后来有人建议使用 cdk。 aws cdk 和 boto3 有什么区别?

欢迎使用 Stack Overflow 和使用 AWS!

boto3 是适用于 AWS 的 python SDK。它对您的软件能够提升其他 AWS 服务很有用。

用例示例:您的代码必须将对象放入 S3 存储桶(换句话说,存储文件)。

aws-cdk 是一个框架,可帮助您以 IaC(基础设施即代码)方式配置基础设施。

用例示例:描述和配置您的应用程序基础设施(例如 lambda 函数和 S3 存储桶)。

在许多项目中,您会同时使用两者。

您可以找到一个示例 URL 使用 boto3 和 aws-cdk here 的缩短器。 URL shorterer 使用 boto3 来访问 DynamoDB table 和 aws-cdk 来提供整个基础设施(包括使用 boto3 的 lambda 函数)。

简单来说,CDK 帮助您以编程方式创建 AWS 资源(基础架构即代码),而 boto3 帮助您以编程方式访问 AWS 服务。

这是来自 AWS 参考链接的关于 CDK 和 Boto3 的片段:

CDK:
AWS 云开发工具包 (AWS CDK) 是一个开源软件开发框架,用于使用熟悉的编程语言定义您的云应用程序资源。 AWS CDK 通过 AWS CloudFormation 以安全、可重复的方式配置您的资源。它还使您能够编写和共享包含组织要求的自定义结构,从而帮助您更快地启动新项目。 (参考:https://aws.amazon.com/cdk/

借助 CDK 和 Cloudformation,您将获得可重复部署、轻松回滚和偏差检测的好处。 (参考:https://aws.amazon.com/cdk/features/

Boto3:
Boto3 是 Python 的 Amazon Web Services (AWS) 软件开发工具包 (SDK),它允许 Python 开发人员编写使用 Amazon S3 和 Amazon EC2 等服务的软件。 (参考:https://pypi.org/project/boto3/

您正在创建一个需要使用 AWS 服务和资源的应用程序。你应该使用 cdk 还是 boto-3?

考虑您的应用程序在构建时或 运行 时是否需要 AWS 服务和资源。

构建时间:您需要可用的 AWS 资源才能构建应用程序。

运行 时间:您需要在应用程序启动和 运行ning 时通过 API 调用提供 AWS 资源。

AWS CDK 设置您的应用程序所需的基础设施,以便运行。

AWS SDK 补充您的应用程序以提供业务逻辑并通过您的应用程序提供服务。

要补充的另一点是,AWS CDK 在内部管理您部署的资源的状态,从而允许您跟踪已部署的内容并指定最终部署资源的所需状态。

另一方面,如果您使用 AWS SDK,则必须自己存储和管理已部署资源(使用 AWS SDK 部署)的状态。

我也是AWS新手,以下是我对AWS相关服务和boto3的理解

  • AWS Cloud Development Kit (CDK) 是一个软件库,以不同的编程语言提供,定义提供云基础设施*,通过AWS CloudFormation.

  • Boto3 是 Python 软件开发工具包 (SDK) create, 配置管理 AWS服务。

  • AWS CloudFormation 是一项低级别 服务,用于创建关系 AWS 和第三方资源的集合,并以有序且可预测的方式提供和管理它们。

  • AWS Elastic Beanstalk 是一项 高级 服务,用于部署和 运行 应用程序云很容易,并且位于 AWS CloudFormation.

    之上