热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

awssns与mysql_亚马逊网络服务AWSLambda可以连接到RDSmySQL数据库并更新数据库吗?...

亚马逊网络服务-AWSLambda可以连接到RDSmySQL数据库并更新数据库吗?我正在尝试将AWSLambda函数连接到RDSmysql数据库。我只想从我的lamb

亚马逊网络服务-AWS Lambda可以连接到RDS mySQL数据库并更新数据库吗?

我正在尝试将AWS Lambda函数连接到RDS mysql数据库。

我只想从我的lambda函数更新数据库。 是否可以通过指定IAM角色和访问策略来访问RDS?

我可以使用mysql client。连接到mysql数据库,但是当我尝试使用lambda时我无法做到这一点。 这是我的代码。

console.log('Loading function');

var doc = require('dynamodb-doc');

var dynamo = new doc.DynamoDB();

var mysql = require('mysql');

exports.handler = function(event, context) {

//console.log('Received event:', JSON.stringify(event, null, 2));

var operation = event.operation;

delete event.operation;

switch (operation) {

case 'create':

var conn = mysql.createConnection({

host: 'lamdatest.********.rds.amazonaws.com', // RDS endpoint

user: 'user', // MySQL username

password: 'password', // MySQL password

database: 'rdslamda'

});

conn.connect();

console.log("connecting...");

conn.query('INSERT INTO login (name,password) VALUES("use6","password6")', function(err, info) {

console.log("insert: " + info.msg + " /err: " + err);

});

console.log("insert values in to database");

break;

case 'read':

dynamo.getItem(event, context.done());

break;

default:

context.fail(new Error('Unrecognized operation "' + operation + '"'));

}

context.succeed();

};

4个解决方案

77 votes

是。 您可以从AWS Lambda访问MySql RDS数据库。

您可以使用node-mysql库。

链接:[https://github.com/felixge/node-mysql/]

但是,随之而来的是一个很大的警告。

AWS Lambda(当前)无法访问VPC内部的专用子网。 因此,为了使AWS Lambda访问您的RDS数据库,它必须是可公开访问的,这可能对您构成安全风险。

更新(2015-10-30):AWS Lambda宣布了即将提供的VPC支持(自re:Invent 2015起),因此这不再是一个问题。

更新(2015-11-17):AWS Lambda仍然不支持VPC。

更新(2016-02-11):AWS Lambda现在可以访问VPC资源:

[HTTPS://AWS.Amazon.com/blogs/AWS/new-access-resources-in-啊-v PC-from-有人-lambda-functions/]

为了实现此功能,您的Lambda函数实际上将在您的VPC内部的子网中执行。 此功能有一些警告:

VPC子网需要足够的可用IP地址来处理Lambda的扩展

如果您的Lambda功能需要Internet访问,则指定的VPC子网将需要Internet网关或NAT

Matt Houser answered 2020-08-06T07:08:27Z

6 votes

试试这个教程:[http://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html]

在本教程中,您将执行以下操作:

在默认的Amazon VPC中启动Amazon RDS MySQL数据库引擎实例。

在MySQL实例中,创建一个数据库(ExampleDB),其中包含一个示例表(Employee)。

创建一个Lambda函数来访问ExampleDB数据库,创建一个表(员工),添加一些记录,然后从表中检索记录。

手动调用Lambda函数并验证查询结果。

Pallav answered 2020-08-06T07:09:09Z

4 votes

由于Lambda使用Node.js、Java和Python作为后端编程/脚本语言,因此您绝对可以使用它来连接到RDS。 (链接)

最后,这是有关在连接到RDS时指定IAM角色的文档。 (请参见下图):

t6eFc.png

Jordan answered 2020-08-06T07:09:34Z

2 votes

我只想从我的lambda函数更新数据库。 是否可以通过指定IAM角色和访问策略来访问RDS?

你不能。 您需要提供数据库URL /用户名/密码进行连接。 如果Lambda在私有子网中,则可能需要在同一VPC中运行它。 请参阅下面的指针。

我可以使用mysql client。连接到mysql数据库,但是当我尝试使用lambda时我无法做到这一点。

这是严格的不,不! 除非确实需要,否则不应从Internet访问RDS。 尝试在专用子网中运行它,并相应地配置其他AWS服务。

如果您超时无法访问Lambda,

默认情况下,Lambda可以访问互联网,并且可以访问在线资源。

Lambda无法访问您的VPC专用子网中破坏的服务。

要连接到专用子网中的服务,您需要运行lambda是专用子网。 为此,您需要转到“网络”部分并配置VPC,子网和安全组。

但是请注意,执行此操作将失去Internet访问。 如果仍然需要Internet访问,则必须在公共子网中启动NAT网关或NAT实例,并配置从专用子网到此NAT的路由。

当我尝试从我的Lambda连接到私有子网中的RDS时遇到了这个问题。 由于我使用KMS加密了一些环境变量,并且解密部分需要Internet访问,因此我不得不使用NAT网关。

更多详细信息-[http://docs.aws.amazon.com/lambda/latest/dg/vpc.html#vpc-internet]

如何从AWS Lambda连接到Postgres RDS

PS:上面的链接转到我的个人博客,其中包含其他相关信息。

Aniket Thakur answered 2020-08-06T07:10:48Z



推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
author-avatar
zjy135781012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有