1

Dynamodbへのアクセスを失うことなく、Serverlessフレームワーク(v 0.5.6)を使用してLambda関数からAWS Elasticacheクラスタにアクセスしようとしています。私はこのGistを使ってみました。ラムダ関数の中で、私が行う最初のことは、Redisインスタンスに接続することですが、私はタイムアウトを取得し続ける、私はCloudFormationの出力変数とVPCのラムダロール/ポリシーの内部の可視性をチェックしているが、まだ何も...私は避難所hereのように、パブリックおよびプライベートサブネット、NAT、インターネットゲートウェイを作成するために、CloudFormationとServerlessでVPCとセキュリティグループを作成する方法に関するガイドが見つかりませんでした。誰も助けることができますか?Serverlessフレームワークを使用してLambdaにElasticacheを接続してください

答えて

2

ElastiCacheクラスターが存在するVPC内にLambda関数を配置する必要があります。もちろん、Lambda関数はVPC内に存在するリソースにしかアクセスできないため、アクセスできなくなります。 DynamoDB。その解決策は、NATゲートウェイをVPCに追加することです。これにより、Lambda機能はVPC外のリソースにアクセスできます。

私は、VPCとNATゲートウェイの設定がServerlessフレームワーク外になると思っていますが、私はそのフレームワークの専門家ではありません。 AWSコンソールを介して手動で設定するか、CloudFormationのようなものを使って手動で設定することを検討し、Serverlessフレームワーク設定で使用する必要のある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" 
関連する問題