0
私はS3バケットによってトリガされるAWSラムダ機能を持っています。 Lambda関数は、VPC内のEC2インスタンスにpingを実行します。 VPCにはNATがありません。何らかの理由でラムダはEC2に接続できず、タイムアウトしています。私は、VPCとVPCの両方でラムダを維持しようとしました。私はまた、インスタンスのパブリックおよびプライベートIPを使用してみましたが、動作していないようです。私は次に何ができるかに関する提案。AWSラムダがVPC内のEC2インスタンスにpingできない
from __future__ import print_function
import json
import boto3
import urllib2
print('Loading function')
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
url = urllib2.urlopen("http://ip-address/API/")
マーク私には2つの質問があります: ラムダはEC2のVPC内にあるべきですか? もう1つ、セキュリティグループのポート80を開く方法は?私は現在、私のEC2インスタンスにアクセスするセキュリティグループ内の特定のIPに対してポート80を開いています。誰も私のマシンにHTTP経由でアクセスしないように注意してください。 –
Hey Mark、 あなたの答えをありがとう。私には2つの質問がありました。 最初に、ラムダ関数がVPC内にある必要がありますか? もう1つ、私は現在、EC2マシンの特定のIPに対してのみポート80を開いていますが、ラムダのセキュリティグループ内からEC2にアクセスできるようにHTTPポート80を開くべきですか? –
はいLambda機能は、EC2インスタンスと同じVPC内のVPC内に存在する必要があります。セキュリティグループのポートを開くには、インバウンドルールを追加するときに、ソースタイプに「Custom」を選択してから、グループIDをソース値として使用します。このフィールドに "sg"と入力すると、セキュリティグループの一覧がポップアップ表示されます。 –