[英]AWS LAMBDA Connect to RDS SQL database using SqlConnection
如何在ASW Lambda函数上连接到RDS SQL服务器数据库?
以下代码在常规C#控制台应用程序项目上运行良好,但是一旦我将其部署到AWS并试图调用它,就会在AWS Lambda项目上给出错误:
public static string CS = "Data Source=host-name, 1433; Initial Catalog=database-name; User ID=username; Password='password';";
public static List<string> Get_Rule_Group()
{
using (SqlConnection con = new SqlConnection(CS))
{
string query = "SELECT abc from table where abc = xyz";
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
List<string> Rule_Group = new List<string>();
while (reader.Read())
{
Rule_Group.Add(reader["abc"].ToString());
}
return Rule_Group;
}
}
错误:
2017-10-06 19:10:27: START RequestId: f33cf098-9360-11e7-96fb-7594ff8505a7 Version: $LATEST
2017-10-06 19:10:43: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught)
2017-10-06 19:10:44: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling)
2017-10-06 19:10:44: at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
2017-10-06 19:10:44: at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
2017-10-06 19:10:44: at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
2017-10-06 19:10:44: at System.Data.SqlClient.SqlConnection.Open()
2017-10-06 19:10:44: at AWSLambdaErrorReport.DAL.Get_Rule_Group()
2017-10-06 19:10:44: at AWSLambdaErrorReport.Function.<FunctionHandler>d__6.MoveNext()
2017-10-06 19:10:44: FAILED to proceed
2017-10-06 19:10:44: END RequestId: f33cf098-9360-11e7-96fb-7594ff8505a7
2017-10-06 19:10:44: REPORT RequestId: f33cf098-9360-11e7-96fb-7594ff8505a7 Duration: 17209.25 ms Billed Duration: 17300 ms Memory Size: 256 MB Max Memory Used: 40 MB
您必须执行以下操作:
您是否在Lambda函数中配置了VPC?
请查看: http : //docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.