亚马逊网络服务

如何集成AWSλ与Amazon API网关使用起程拓殖代码

Istock 1194430859

在大多数场景中,我们综合AWSλ与API网关运行我们的应用程序是用Python编写的,节点。js、去、。net、Java、Ruby等等。

λ集成跟踪路径和HTTP方法结合Lambda函数。我们可以配置API网关通过HTTP请求的内容或总结所请求的内容在一个文档,包括所有的信息,包括标题、资源、路径和方法。

1

起程拓殖是什么?

起程拓殖是一个工具,它允许您构建基础设施代码,改变,基础设施管理和版本。它是最受欢迎的基础设施代码(Iac)工具,用于自动化基础设施任务,自动配置您的云资源。它是开源的。起程拓殖可以管理底层的组件(比如计算、存储和网络资源,以及高级的组件(比如DNS条目和SaaS特性。

AWSλ是什么?

AWSλ是serverless计算平台所提供的AWS,你可以上传你的代码并使用AWS塞维它是自动执行的。

的概念serverless计算指的是你不需要维护或管理自己的服务器来运行某些功能。这意味着我们可以上传我们的代码(Python,节点。js、去、。net、Java、Ruby)和λ将管理函数运行时,缩放、负载平衡等

Amazon API网关是什么?

API网关是一个完全托管服务,帮助开发人员创建API来后端系统运行在Amazon EC2,λ,或任何公开可访问web服务。API网关支持RESTful API包括RESTAPIs、HTTP API,以及网络套接字API。

API能够修改请求中的信息和转发到一个Lambda函数API网关服务,您可以使用它来创建应用程序编程接口。

技能:

  • 一个AWS帐户
  • VS代码工作室
  • 起程拓殖安装在你的机器上。

工作流起程拓殖的代码:

起程拓殖脚本运行遵循以下步骤:

在我们开始之前,我们必须创建模块我的角色,Lambda函数和一个API网关。为此我们需要创建单独的主要变量,输出文件所示的工作流。在λ模块我们将创建python文件然后我们想运行创建的主要变量,主要起程拓殖代码的输出文件。

| - - - - - -λ与API集成网关(目录名)

|”

|——模块

| | - - - - - -我的角色

| | | - main.tf

| | | - outputs.tf

| | | - variables.tf

| |

| |

| | - - - - - -λ

| | | - main.tf

| | | - outputs.tf

| | | - variables.tf

| | | - hello_lambda

| | | hello_lambda.py

| | -hello_lambda.zip

| |

| |

| | - - - - - -API网关

| | | - main.tf

| | | - outputs.tf

| | | - variable.tf

| | |

| | |

| | - |main.tf

| | - |outputs.tf

| | - |terraform.tfvars

| | - |起程拓殖tfstate

亚马逊网络服务——避免呼叫中心中断:计划你升级到亚马逊连接
避免呼叫中心中断:计划你升级到亚马逊连接

学习六个最常见的陷阱当升级你的呼叫中心,以及亚马逊如何连接可以帮助你避免它们。

得到指导

| | |

我的角色模块

主要文件我角色的模块:

我们需要创建我角色的主文件lambda函数和API网关模块,这意味着我们将需要决定承担角色,λ许可,λ执行。

2

Assume_role_policy -出一个实体的政策允许承担的角色。

现在,我们必须提供AWSλAPI网关通过附加的许可政策λ执行我的角色。

3

aws_lambda_permission -允许API网关和AWSλ访问另一个。

为vpc_access aws_iam_role_policy _attachment _execution- - - - - -与AWS访问vpcλ。

变量文件我角色的模块:

这是变量文件我的模块,我们已经定义了我的角色名字,API网关在攻击,λ在攻击,在攻击我的角色。

4

我的角色模块的输出文件:

在这个文件,我们将需要定义在攻击我的角色。

5

Lambda函数模块:

第二个模块,您将需要创建是Lambda函数和归档文件,其中包含应用程序中,您需要运行λ模块的主文件。

编写Python应用程序:

让我们调用的Python应用程序将运行在Lambda函数。你将需要:

  1. 创建一个目录hello_lambda main.tf平行
  2. 在该目录中,创建一个文件hello_lambda.py
  3. 添加以下Python脚本运行:

进口json

def lambda_handler(事件、上下文):

# TODO实现

返回{“statuscode”: 200年,

“身体”:json。转储(“你好λ”)

}

所谓的Python应用程序之后,您将需要创建一个. zip文件。AWS Lambda函数需要存储在. zip代码正确上传AWS服务器。这个. zip中提到,我们要上传将主。tf的代码。

Lambda函数模块的主要文件:

6

aws_lambda_function。KClambda——包含你的函数代码配置Lambda函数。它还设置运行时Python3.8,分配hello_lambda.py中定义的处理函数的处理程序。

Lambda函数变量文件模块:

在这里您将声明变量和函数名λ,λ在攻击,我的角色是Lambda函数。资源IAM_role_arn指定一个角色授予权限访问AWS服务功能和资源在您的帐户。

7

Lambda函数模块的输出文件:

这是Lambda函数的输出文件,宣布lambda_arn。

调用在攻击-攻击来调用lambda函数。

8

API网关模块:

在这一步中,我们将创建POST &选择方法,该方法集成,并将其部署。

API网关是一个AWS管理服务,允许你创建和管理HTTP API。它支持集成与AWS Lambda函数,允许我们使用Lambda函数实现HTTP API来处理HTTP请求和响应。

主要文件的API网关模块:

在这里我们将创建rest_api网关。rest_API是一家集资源和方法集成与后端HTTP端点,Lambda函数或其他AWS服务。

9

在下面图表中,我们会遇到内容如:

  • rest_api_id——定义了REST API相关的ID。
  • stage_name——定义阶段的名称。
  • resource_id——定义了REST API资源ID。
  • http_method-the方法调用相关的资源。

10

  • aws_api_gateway_rest_api定义了一个API的名称网关和协议HTTP方法。
  • aws_api_gateway_integration配置API网关使用Lambda函数
  • aws_api_gateway_deployment——部署可以发布到调用端点通过aws_api _gateway _stage资源。

变量文件API网关模块:

这里我们宣布API名称和λ是集成API方法。

11

输出文件的API网关模块:

在这里我们检查了api_arn api_gateway的执行攻击。

execution_arn——执行攻击中使用lambda_permission来源是当网关允许API来调用一个Lambda函数。

12

主要的起程拓殖脚本文件:

在这里,我们需要编写一个起程拓殖脚本。我们将创建一个主文件调用模块,我的角色,Lambda函数和API网关。

13

起程拓殖Tfstate文件:

同时起程拓殖状态文件更新时创建一个新的资源。Tfstate文件跟踪所有您所作的改变就像创建、删除或更新。它告诉我们起程拓殖版本使用。

这是最重要的文件在起程拓殖,没有它的过程根本不工作。(该文件的所有内容都以JSON格式)。

配置运行以下命令:

  • 起程拓殖init:用于初始化一个工作目录包含起程拓殖配置文件。
  • 起程拓殖计划:检查哪些资源将起程拓殖应用部署时创建的。为此,我们起程拓殖计划使用。
  • 起程拓殖应用:建立基础设施部署。

在AWS控制台输出:

在这里我们看到了我的角色创建起程拓殖脚本编写的,

14

然后,我们可以看到Lambda函数:

15

API网关“demo-api”创建与POST和选项方法我们提到起程拓殖代码。

16

结论:

这是最终的输出,我们可以看到AWS Lambda函数与API集成网关成功使用起程拓殖代码。在第一阶段的输出,我们可以看到已经创建了我的角色,之后我们看到了Lambda函数和API创建网关成功。

Perficient如何帮助你?

Perficient是注册Amazon Web服务伙伴有超过10年的经验提供企业级应用程序在云平台解决方案和专业知识,联系中心,应用现代化,迁移,数据分析,移动开发和管理工具,物联网,serverless,安全,和更多。配上我们的行业领先的战略和团队,Perficient装备来帮助企业解决最棘手的挑战,充分利用他们的实现和集成。

了解更多关于我们的AWS练习和接触我们的团队!

思考“如何整合AWSλ与Amazon API网关使用起程拓殖代码”

  1. 一个适当的和深刻的解释文章! !

    Kunal,很多恭喜,这个宝石的信息篇! !
    期待从你阅读更多类似的文章在未来!
    所有最好的!

留下一个回复

你的电子邮件地址将不会被发表。必填字段标记*

这个网站使用Akismet来减少垃圾邮件。学习如何处理你的评论数据

(Kunal Choudharkar

(Kunal Choudharkar Perficient是一个技术顾问和2.7年的云& DevOps服务经验。他也是一个AWS认证解决方案架构师助理。(Kunal愿在未来通过博客来分享他的知识。

从这个作者

跟着我们
推特 Linkedin 脸谱网 Youtube Instagram