AWS Lambda에서 EC2 인스턴스에서 세운 postgres Docker 컨테이너에 액세스
EC2에 postgres Docker를 세우기
EC2에서 Docker postgres를 세운다.
이하의 기사가 참고가 되었다.
docker run -d --name postgres -e POSTGRES_PASSWORD=test -p 5432:5432 postgres
Lambda 함수
lambda 런타임에는 Python 3.8
를 사용했습니다.
코드는 다음과 같습니다.xxx.xxx.xxx.xxx
에 EC2 인스턴스의 개인 IP를 입력합니다.
import json
import psycopg2
def execute_sql(sql):
connection = psycopg2.connect(host='xxx.xxx.xxx.xxx',
user='postgres',
password='test',
dbname='postgres',
port=5432)
cursor = connection.cursor()
cursor.execute(sql)
result = cursor.fetchall()
return result
def lambda_handler(event, context):
sql = 'select * from testtable;'
result = execute_sql(sql)
print(result)
return {
'statusCode': 200,
'body': json.dumps(result)
}
psycopg2 import 준비
위의 코드만으로는 psycopg2
를 사용할 수 없다.
을 포크하고 로컬로 리포지토리를 가져옵니다. Fork 첫 체험이었기 때문에 감동했다(웃음)
그런 다음 동일한 런타임 psycopg2-3.8
의 이름을 psycopg2
로 변경하고 압축합니다.
레이어에 추가하면 좋다고 생각했지만, import 할 수 없었기 때문에 (왜?) 이하의 액션 버튼으로부터 zip 파일을 업로드했다.

액션 버튼을 눌러 업로드.

그런 다음 lambda_function.py
를 만듭니다.
현재의 상태는 이런 느낌.

VPC 설정
콘솔 화면을 조금 아래로 스크롤하면 VPC
설정란이 있다.

편집을 클릭하고 VPC, 서브넷(하나만 선택한다고 주의되지만 무시), 보안 그룹을 설정한다.
보안 그룹은 기본값을 사용했습니다. (EC2 인스턴스에 붙인 보안 그룹도 기본이었기 때문에 이것으로 좋은 것 같습니다)
액세스 권한
Lambda 함수를 생성할 때 AWS가 새로 생성한 역할에 대한 두 가지 정책 AmazonEC2FullAccess
AWSLambdaVPCAccessExecutionRole
를 부착했다. 사실은 더 엄격하게 하는 것이 좋다고 생각한다. 자세한 내용은 공식 문서에 썼다.

후에는 테스트 버튼을 눌러 아래 그림과 같이 결과가 나오면 OK.

참고 기사
공식 문서
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / 콘후 쿠라 치온 - vpc. HTML
psycopg2를 로컬 또는 AWS Lambda에서 동일하게 사용
htps : // 이 m / re d 쇼가 / ms / 195d3 세 3 후아 5f29171c0
Docker로 PostgreSQL 환경 구축
htps : // m / r r / ms / b44653 a 5 fcd1072852 c0
Reference
이 문제에 관하여(AWS Lambda에서 EC2 인스턴스에서 세운 postgres Docker 컨테이너에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/quryu/items/7db367c669408b24fe1b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker run -d --name postgres -e POSTGRES_PASSWORD=test -p 5432:5432 postgres
lambda 런타임에는
Python 3.8
를 사용했습니다.코드는 다음과 같습니다.
xxx.xxx.xxx.xxx
에 EC2 인스턴스의 개인 IP를 입력합니다.
import json
import psycopg2
def execute_sql(sql):
connection = psycopg2.connect(host='xxx.xxx.xxx.xxx',
user='postgres',
password='test',
dbname='postgres',
port=5432)
cursor = connection.cursor()
cursor.execute(sql)
result = cursor.fetchall()
return result
def lambda_handler(event, context):
sql = 'select * from testtable;'
result = execute_sql(sql)
print(result)
return {
'statusCode': 200,
'body': json.dumps(result)
}
psycopg2 import 준비
위의 코드만으로는 psycopg2
를 사용할 수 없다.
을 포크하고 로컬로 리포지토리를 가져옵니다. Fork 첫 체험이었기 때문에 감동했다(웃음)
그런 다음 동일한 런타임 psycopg2-3.8
의 이름을 psycopg2
로 변경하고 압축합니다.
레이어에 추가하면 좋다고 생각했지만, import 할 수 없었기 때문에 (왜?) 이하의 액션 버튼으로부터 zip 파일을 업로드했다.

액션 버튼을 눌러 업로드.

그런 다음 lambda_function.py
를 만듭니다.
현재의 상태는 이런 느낌.

VPC 설정
콘솔 화면을 조금 아래로 스크롤하면 VPC
설정란이 있다.

편집을 클릭하고 VPC, 서브넷(하나만 선택한다고 주의되지만 무시), 보안 그룹을 설정한다.
보안 그룹은 기본값을 사용했습니다. (EC2 인스턴스에 붙인 보안 그룹도 기본이었기 때문에 이것으로 좋은 것 같습니다)
액세스 권한
Lambda 함수를 생성할 때 AWS가 새로 생성한 역할에 대한 두 가지 정책 AmazonEC2FullAccess
AWSLambdaVPCAccessExecutionRole
를 부착했다. 사실은 더 엄격하게 하는 것이 좋다고 생각한다. 자세한 내용은 공식 문서에 썼다.

후에는 테스트 버튼을 눌러 아래 그림과 같이 결과가 나오면 OK.

참고 기사
공식 문서
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / 콘후 쿠라 치온 - vpc. HTML
psycopg2를 로컬 또는 AWS Lambda에서 동일하게 사용
htps : // 이 m / re d 쇼가 / ms / 195d3 세 3 후아 5f29171c0
Docker로 PostgreSQL 환경 구축
htps : // m / r r / ms / b44653 a 5 fcd1072852 c0
Reference
이 문제에 관하여(AWS Lambda에서 EC2 인스턴스에서 세운 postgres Docker 컨테이너에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/quryu/items/7db367c669408b24fe1b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
콘솔 화면을 조금 아래로 스크롤하면
VPC
설정란이 있다.
편집을 클릭하고 VPC, 서브넷(하나만 선택한다고 주의되지만 무시), 보안 그룹을 설정한다.
보안 그룹은 기본값을 사용했습니다. (EC2 인스턴스에 붙인 보안 그룹도 기본이었기 때문에 이것으로 좋은 것 같습니다)
액세스 권한
Lambda 함수를 생성할 때 AWS가 새로 생성한 역할에 대한 두 가지 정책 AmazonEC2FullAccess
AWSLambdaVPCAccessExecutionRole
를 부착했다. 사실은 더 엄격하게 하는 것이 좋다고 생각한다. 자세한 내용은 공식 문서에 썼다.

후에는 테스트 버튼을 눌러 아래 그림과 같이 결과가 나오면 OK.

참고 기사
공식 문서
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / 콘후 쿠라 치온 - vpc. HTML
psycopg2를 로컬 또는 AWS Lambda에서 동일하게 사용
htps : // 이 m / re d 쇼가 / ms / 195d3 세 3 후아 5f29171c0
Docker로 PostgreSQL 환경 구축
htps : // m / r r / ms / b44653 a 5 fcd1072852 c0
Reference
이 문제에 관하여(AWS Lambda에서 EC2 인스턴스에서 세운 postgres Docker 컨테이너에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/quryu/items/7db367c669408b24fe1b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
공식 문서
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / 콘후 쿠라 치온 - vpc. HTML
psycopg2를 로컬 또는 AWS Lambda에서 동일하게 사용
htps : // 이 m / re d 쇼가 / ms / 195d3 세 3 후아 5f29171c0
Docker로 PostgreSQL 환경 구축
htps : // m / r r / ms / b44653 a 5 fcd1072852 c0
Reference
이 문제에 관하여(AWS Lambda에서 EC2 인스턴스에서 세운 postgres Docker 컨테이너에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/quryu/items/7db367c669408b24fe1b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)