목표: AWS Lambda 에서 S3에 있는 object를 가져와 확인해보기

(AWS Documentation)

https://docs.aws.amazon.com/ko_kr/code-library/latest/ug/python_3_lambda_code_examples.html#serverless_examples

 

SDK for Python (Boto3)을 사용한 Lambda 예제 - AWS SDK 코드 예제

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

S3 버킷에 객체를 업로드할 때 트리거된 이벤트를 수신하는 Lamdba 함수를 구현하는 방법에 대한 Python 샘플 코드가 작성되어 있다.

 

import json
import urllib.parse
import boto3

print('Loading function')

s3 = boto3.client('s3')

def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))

    # Get the object from the event and show its content type
    # bucket = event['Records'][0]['s3']['bucket']['name']
    # key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
    bucket = 'inhyetest'
    key = 'test/image.png'
    try:
        response = s3.get_object(Bucket = bucket, Key = key)
        print("CONTENT TYPE: " + response['ContentType'])
        return response['ContentType']
    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e

 

 

저는 S3에 업로드한 Object를 가져와 보는 것이 목표였기 때문에 위 url의 샘플 코드에서 필요없는 부분을 주석처리 하여 확인해보았습니다. 

 

그냥 저의 S3 버킷에서 위에 써놓은 파일을 읽어서 Content-type을 보여주는 간단한 프로그램이라서 아무 파라미터 없이 테스트 누르시면 됩니다.

 

테스트 결과

 

참고로 버킷은 따로 커스텀한 설정없이 기본 설정으로 만들었습니다. 

객체소유권 - ACL 비활성화됨(권장)

이 버킷의 퍼블릭 액세스 차단 설정 - 모든 퍼블릭 액세스 차단

버킷 버전 관리 - 비활성화

기본 암호화 - Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화

버킷 키 - 활성화

 

'정보 > Web' 카테고리의 다른 글

[Mozilla] Web의 동작 방식  (0) 2022.01.13
HTTP와 HTTPS  (0) 2022.01.09

https://developer.mozilla.org/ko/docs/Learn/Getting_started_with_the_web/How_the_Web_works

위 링크를 보고 공부하는 겸 올립니다.

 

웹의 동작 방식 - Web 개발 학습하기 | MDN

'웹의 동작 방식'은 여러분의 컴퓨터나 폰의 웹 브라우저 안에서 웹페이지를 볼 때 무슨 일이 발생하는지에 대한 간소화된 개념을 제공할 것입니다.

developer.mozilla.org

 

웹에 연결된 컴퓨터는 클라이언트와 서버라고한다.

 

클라이언트 ? 인터넷이 연결된 장치들과 이런 장치들에서 웹에 접근하는 소프트웨어(크롬, 파이어폭스 등의 웹 브라우저)

서버 ? 웹페이지, 사이트, 또는 앱을 저장하는 컴퓨터.

 

클라이언트의 장비가 웹페이지에 접근하길 원할 때, 서버로부터 웹페이지의 사본이 다운로드된다.

 + 알아야 할 내용

인터넷 연결 웹에서 데이터를 보내고 받을 수 있게 해준다.
TCP/IP (Transmission Control Protocol / Internet Protocol) 데이터가 어떻게 웹을 건너 클라이언트에게 가는지 정의하는 통신 규약
DNS (Domain Name System Servers) 웹사이트를 위한 주소록!
실제 웹주소는 IP주소로 웹의 하나뿐인 특정 위치를 나타내는데 기억하기 쉽지 않아서 도메인 이름 서버가 생겼다.
HTTP (Hypertext Transfer Protocol) 클라이언트와 서버가 서로 통신할 수 있게 하기 위한 언어를 정의하는 어플리케이션 규약
컴포넌트 파일  
코드 파일 웹사이트는 근본적으로 HTML, CSS, JavaScript로 구성
자원 웹사이트를 만드는 모든 다른 것들을 위한 공동적인 이름(이미지, 음악, 비디오, 등등)

 

클라이언트가 브라우저에 웹 주소를 입력하면!

1) DNS 서버로 가서 서버의 진짜 주소를 찾는다.

2) 브라우저는 서버에 웹사이트의 사본을 클라이언트에게 보내달라는 HTTP요청메세지를 전송한다. (TCP/IP이용)

3) 클라이언트의 요청 메시지를 받은 서버는 요청을 승인하고 200 OK 메세지를 클라이언트에게 전송한다. 이 후 서버는 웹사이트의 파일들을 데이터 패킷이라 불리는 작은 일련의 덩어리들로 브라우저에 전송한다.

4) 브라우저는 받은 데이터 패킷을 웹사이트로 조립하고 클라이언트에게 보여준다.

'정보 > Web' 카테고리의 다른 글

AWS S3 bucket 에 있는 object를 lambda에 가져오기  (0) 2024.04.01
HTTP와 HTTPS  (0) 2022.01.09

HTTP(HyperText Transfer Protocol)

- 인터넷에서 하이퍼텍스트(hypertext)문서를 교환하기 위하여 사용되는 통신규약이다.

- www(World Wide Web)상에서 정보를 주고 받기 위한 프로토콜로, 애플리케이션 레벨의 프로토콜이다.

- HTTP는 TCP/IP 위에서 작동하며, 서버/클라이언트 모델을 따른다. 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)한다.

- HTTP는 connection less 방식(stateless)이다. 클라이언트의 요청에 서버가 응답한 후 클라이언트와 연결을 끊는 구조로 network 속도가 느린 단점을 가지고 있다. 이를 개선하기 위해 HTTP 1.1부터는 Keep Alive 기능을 지원한다. Keep Alive 기능은 일정한 시간동안 접속을 유지하는 기능이다.

- 클라이언트가 서버에 접속하여 어떠한 요청을 하면, 서버는 세 자리 수로 된 응답 코드와 함께 응답한다.

200 요청처리 완료
30x 리다이렉트
404 Not Found 찾지못함
500 서버 내부 오류

- HTTP URL은 "http://"로 시작하며, 기본 포트번호는 80이다.

 

HTTPS(HyperText Transfer Protocol over Secure Socket Layer)

- HTTP는 기본적으로 평문 데이터 전송을 원칙으로 하기 때문에 개인의 프라이버시가 오가는 서비스들(전자상거래, 전자메일, 사내문서)에 사용하기 힘들다.

- HTTPS는 SSL위에 HTTP를 통과 시키는 방식이다. 평문의 HTTP 문서는 SSL를 통과하면서 암호화 돼서 목적지에 도착하고, 목적지에서는 SSL 레이어를 통과하면서 복호화돼서 웹 브라우저에 전달된다.

- SSL은 전자상거래에서의 데이터 보안을 위해서 개발한 통신 레이어다. SSL은 표현계층의 표현계층의 프로토콜로 응용계층 아래에 있기 때문에, 어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다.

- HTTPS는 인ㅇ증서를 이용해서, 접속 사이트를 신뢰할 수 있는지 평가할 수 있다.

- 일반적으로 HTTPS는 HTTP에 비해서 느리다. 많은 양의 데이터를 처리할 경우 성능의 차이를 체감할 수 있다.

- HTTPS URL은 "https://"로 시작한다.

- 기본포트번호는 443이다.

 

https://developer.mozilla.org/ko/docs/Web/HTTP

'정보 > Web' 카테고리의 다른 글

AWS S3 bucket 에 있는 object를 lambda에 가져오기  (0) 2024.04.01
[Mozilla] Web의 동작 방식  (0) 2022.01.13

+ Recent posts