Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从运行在Lambda中的dotnet核心代码到MySQL的AWS IAM身份验证_Mysql_Amazon Web Services_.net Core_Aws Lambda_Connection String - Fatal编程技术网

从运行在Lambda中的dotnet核心代码到MySQL的AWS IAM身份验证

从运行在Lambda中的dotnet核心代码到MySQL的AWS IAM身份验证,mysql,amazon-web-services,.net-core,aws-lambda,connection-string,Mysql,Amazon Web Services,.net Core,Aws Lambda,Connection String,我有一个用dotnetcore2.1编写的lambda函数。此代码使用Oracle MySql提供程序(v8.0.19)。MySQL RDS(v5.7.26)正在运行,用户配置为使用AWSAuthenticationPlugin,如下面链接的AWS文章所述 我可以使用普通用户名/密码组合连接到此RDS,但我想改用IAM身份验证。本文介绍了如何在linux服务器上使用mysql客户端执行此操作: 我已经创建了IAM策略,并且能够通过RDSAuthTokenGenerator.GenerateAut

我有一个用dotnetcore2.1编写的lambda函数。此代码使用Oracle MySql提供程序(v8.0.19)。MySQL RDS(v5.7.26)正在运行,用户配置为使用AWSAuthenticationPlugin,如下面链接的AWS文章所述

我可以使用普通用户名/密码组合连接到此RDS,但我想改用IAM身份验证。本文介绍了如何在linux服务器上使用mysql客户端执行此操作:

我已经创建了IAM策略,并且能够通过RDSAuthTokenGenerator.GenerateAuthToken在lambda函数中加载令牌。连接字符串的构建如下所示:

MySqlConnection c = new MySqlConnection();
MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder();
csb.Server = "dbinstanceName.xxx.us-xxx-1.rds.amazonaws.com";
csb.Port = 3306;
csb.Database = "Database";
csb.UserID = "DatabaseUserName";
csb.Password = RDSAuthTokenGenerator.GenerateAuthToken("dbinstanceName.xxx.us-xxx-1.rds.amazonaws.com", 3306, "DatabaseUserName");
csb.SslMode = MySqlSslMode.VerifyFull;
c.ConnectionString = csb.ConnectionString;
当我将此令牌作为连接字符串中的密码值传递时,我得到异常:

“errorType”:“MySqlException”, “errorMessage”:“任何可用插件都不支持“mysql\u clear\u password”身份验证方法。”

这篇MySQL文章描述了客户端cleartext可插入身份验证(),但是我不知道如何在dotnet的MySQL提供程序中启用此插件


有人能建议一种在dotnet core中以明文形式在连接字符串中发送此RDS令牌的方法吗?我似乎不知道这是如何做到的。

我能够使用不同的MySQL提供程序来实现这一点。如果遇到问题,请尝试使用MySqlConnector提供程序:

有了这个提供程序,我不必更改上面的代码/连接字符串

希望这对其他人有帮助