web-dev-qa-db-fra.com

Connectez-vous au cluster ElastiCache à partir de la fonction AWS Lambda

Est-il possible de se connecter d'une fonction AWS Lambda à un cluster Redis ElastiCache?

Je n'arrive pas à comprendre s'il s'agit d'un problème de configuration ou si ce n'est tout simplement pas possible.

PS: J'ai fait un test à partir d'une instance EC2 et je peux me connecter au nœud Redis. De plus, la fonction Lambda et le nœud Redis se trouvent dans la même région.


UPDATE (09 oct 2015):

Amazon a annoncé le VPC pour les fonctions AWS Lambda. Détails ici

Cela signifie que nous pouvons désormais accéder à toutes les ressources AWS situées derrière le groupe de sécurité VPC, y compris les ordinateurs ElastiCache et RDS.

UPDATE (11 février 2016): Amazon a lancé VPC pour AWS Lambda.

https://aws.Amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/

39
Mircea Soaica

Depuis février 2016, AWS permet d'utiliser les fonctions lambda pour se connecter à Elasticache. Reportez-vous à Accès aux ressources d'un VPC à l'aide de AWS Lambda . Voici un lien sur son fonctionnement - Didacticiel: Configuration d'une fonction Lambda pour accéder à Amazon ElastiCache dans un Amazon VPC

16
greg_diesel

La configuration d'un proxy HTTP ou d'iptables ne fonctionnerait pas pour les raisons suivantes:

Les appels Redis ne sont pas HTTP et ne seront pas traités par les serveurs proxy HTTP. iptables (ou toute redirection de port) n'acceptera pas un nom de domaine comme destination ou est hautement inefficace en raison de la résolution DNS requise à chaque fois.

La meilleure méthode consiste à installer twemproxy sur une machine EC2 et à y acheminer vos demandes. En prime, vous avez soudainement déployé une stratégie de sharding fantastique.

3
Nirmal

Je vivais le même problème. Je n’ai pas trouvé de solution directe, mais j’ai utilisé une fonction Lambda pour me connecter à un serveur EC2 à l’aide de socket.io, ce qui était assez facile et émettre un événement sur ce serveur EC2.

Lorsque le serveur EC2 a reçu l'événement, il a exécuté la tâche Redis nécessaire (nettoyage de la base de données après la génération de miniatures d'image).

J'espère que cela t'aides! Si quelqu'un découvre comment se connecter directement à ElastiCache depuis Lambda, j'aimerais toujours le savoir!

1
R.V.d.M

J'ai essayé de connecter lambda à meme élastaché et cela fonctionne très bien. Redis devrait également être faisable.

Quelques choses à garder à l'esprit:

  1. Lambda et Elasticache doivent être dans le même VPC.
  2. Lorsque lambda est exécuté dans VPC, il n’a pas accès à Internet (donc, l’accès aux API publiques ne fonctionnera pas). NATGateway est requis pour cela.
0
Rssr