将python AWS Lambda函数连接到ElastiCache

时间:2017-11-04 14:30:45

标签: python amazon-web-services aws-lambda boto3 amazon-elasticache

我正在尝试使用Boto3从python lambda函数设置并从ElastiCache(memcached)获取密钥。我可以弄清楚如何获得端点,但这几乎就是它。是否有一些文档显示整个过程?

2 个答案:

答案 0 :(得分:0)

听起来你正试图通过Boto3与Memcached进行交互。这是不可能的。 Boto3用于与AWS API交互。您可以通过AWS API管理ElastiCache服务器,但无法与在这些服务器上运行的Memcached软件进行交互。您需要在Python代码中使用Memcached客户端库(如python-memcached)来实际获取和设置Memcached群集中的密钥。

此外,您的Lambda函数需要与ElastiCache节点驻留在同一个VPC中。

答案 1 :(得分:0)

我在旧帖子的评论中列出了确切的超时问题。我的错误在memcached的安全组中。这是terraform的工作版本:

resource "aws_security_group" "memcached" {
  vpc_id = "${aws_vpc.dev.id}"
  name   = "memcached SG"

  ingress {
    from_port       = "${var.memcached_port}"                    
    to_port         = "${var.memcached_port}" 
    protocol        = "tcp"
    cidr_blocks = ["${var.public_subnet_cidr}"]
  }

  egress {
    from_port   = "${var.memcached_port}" 
    to_port     = "${var.memcached_port}" 
    protocol    = "tcp"
    cidr_blocks = ["${var.public_subnet_cidr}"]
  }

  tags = {
    Name = "memcached SG"
  }
}

我通过在公共子网中创建EC2实例来测试连接,然后执行“ telnet(输入缓存节点URL)11211”。