【问题标题】:How to use AWS Elasticache from Lambda in c#如何在 c# 中使用来自 Lambda 的 AWS Elasticache
【发布时间】:2017-11-28 04:43:47
【问题描述】:

我已经搜索和搜索,但无法找到包含以上所有内容的教程/示例/演练! 我正在尝试用 C# 编写一个 Lambda 函数,该函数使用一些 ElastiCache 存储。 我可以找到从 C# 访问 ElastiCache 的示例,但是我发现引用的每个库都不会与 .NetCore 1.0 一起使用,而 Lambda 使用的是 .NetCore 1.0! 有没有人设法做到这一点? 非常感谢。

【问题讨论】:

  • 您可能希望在课程项目中仅使用 AWS Elasticache 创建课程项目。然后创建一个添加类项目的主项目。这样你就可以用不同的项目设置编译两个项目,这样 lambda 就可以和主项目一起工作了。
  • 您需要使用广泛用于连接memcached的EnyimCache库。您可以在 nuget.org/packages/EnyimMemcachedCore 获取 nuget 包,或在 Visual Studio 的包包管理器窗口中搜索 EnyimMemcachedCore。
  • 谢谢,Chetan,但不幸的是,我找不到适用于 .NetCoreApp 版本 1.0 的库,这是 AWS Lambda 提供的......
  • 我不确定我是否跟随,jdweng。你能详细说明一下吗?

标签: c# aws-lambda amazon-elasticache


【解决方案1】:

是的,这是可能的,你是对的,关于这个主题的信息很少。关键是将您的 Elasticache 实例和 Lambda 函数托管在同一个 VPC 中。从高层次来看,您需要:

  1. 设置具有至少两个子网组、一个路由表和一个安全组的 VPC。
  2. 创建一个指向在步骤 1 中创建的两个子网组的 Elasticache 子网组。
  3. 创建您的 Elasticache 实例,使其指向在步骤 2 中创建的 Elasticache 子网组。
  4. 创建您的 C# Lambda 函数并使用第 3 方库连接到 Elasticache。对于 Redis,我成功地将 StackExchange.Redis 1.2.1 与 .Net Core 1.0 一起使用。较新的版本不适用于 .Net Core 1.0。
  5. 将您的 Lambda 与相同的 VPC、子网和安全组相关联。
  6. 将您的 Lambda 函数与允许您执行 Lambda 并调用 ec2:CreateNetworkInterface 的 IAM 角色相关联(我认为 VPC 调用需要它,但不确定)。像 AWSLambdaFullAccess 和 AWSLambdaVPCAccessExecutionRole 这样的东西会起作用。
  7. 测试您的 Lambda 的连接性。

这篇博文有更好的演练:http://fitsofury.blogspot.com/2018/02/aws-connect-to-elasticache-redis.html

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 2017-12-21
    • 2017-05-23
    • 2019-07-25
    • 2020-06-20
    • 2021-02-16
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多