1

Я пытаюсь получить доступ к кластеру AWS Elasticache из функции Lambda с использованием безсерверной рамки (v 0.5.6) без потери доступа к Dynamodb. Я пробовал использовать этот Gist без везения. Внутри функции лямбда первое, что я делаю, это подключиться к экземпляру Redis, но я продолжаю получать тайм-ауты, я дважды проверял переменные CloudFormation и их видимость внутри функции и лямбда-роли/политики для VPC, но все равно ничего ... Я не знаю не найдено ни одного руководства о том, как создавать VPC и группы безопасности с CloudFormation и Serverless, чтобы создавать общедоступные и закрытые подсети, NAT и интернет-шлюзы, как предложено here. Может ли кто-нибудь помочь?Подключить Лямбда к Elasticache с помощью безсерверной рамки

ответ

2

Вам нужно будет поместить функцию Лямбды внутри VPC, в которой находится кластер ElastiCache. Конечно, как только вы это сделаете, функция Lambda имеет доступ только к ресурсам, которые существуют внутри VPC, поэтому у него больше не будет доступа к DynamoDB. Решением этого является добавление шлюза NAT к VPC, который позволит функции Lambda получать доступ к ресурсам вне VPC.

Я бы подумал, что настройка шлюза VPC и NAT будет за пределами рамки без сервера, но я не эксперт в этой структуре. Я бы предложил изучить настройку этого вручную через консоль AWS или сделать это с помощью чего-то вроде CloudFormation, а затем просто указать в конфигурации сервера без сервера VPC, которую он должен использовать.

+0

Спасибо за ответ, я уже знаю, как делать вещи вручную, но я обнаружил, что Gist для безсервера и, похоже, это хорошо, я хочу, чтобы эта работа работала с платформой Serverless и формированием облаков. –

1

Хотя это не правильно документированы, вы можете настроить VPC непосредственно в файле бессерверной конфигурации (см link)

Версия 0,5

# s-function.json 

{ 
"name": "hello", 
"runtime": "nodejs4.3", 
"handler": "handler.hello”, 
"endpoints": [], 
"events": [], 
"vpc": { 
    "securityGroupIds": ["sg-123456"], 
    "subnetIds": [ 
     "subnet-abc1", 
     "subnet-abc2", 
     "subnet-abc3", 
    ] 
    } 
} 

Версия 1,0

# serverless.yaml 

service: aws-hello 
provider: aws 
    runtime: nodejs4.3 
    vpc: 
    securityGroupIds: 
     — "sg-123456" 
    subnetIds: 
     — "subnet-abc1" 
     — "subnet-abc1" 
     — "subnet-abc1" 
functions: 
    foo:       # inherits the VPC config 
    handler: src/handler.foo 
    bar:       # overwrites the VPC config 
    handler: src/handler.bar 
    vpc: 
     securityGroupIds: 
     — "sg-999999" 
     subnetIds: 
     — "subnet-zzz9" 

 Смежные вопросы

  • Нет связанных вопросов^_^