AWS console μ°½μμ Lambda κ²μ ν μ΄λ
ν¨μ μμ± ν΄λ¦
ν¨μμ΄λ¦μ μ λ ₯νκ³ , λ°νμμ python 3.12 λ₯Ό μ ννλ€. λλ€ ν¨μλ₯Ό μμ±ν λ μ¬μ©ν μΈμ΄λ₯Ό μ ννλ κ². λλ νμ΄μ¬μ΄ μ£Ό μΈμ΄μ΄κΈ° λλ¬Έμ νμ΄μ¬μ μ ννλ€. μ΄λ κ² νλ©΄ ν¨μ μμ±μ λλλ€.
μ΄ νλ©΄μ΄ λμ€λ©΄ μ±κ³΅μ΄λ€. μ΄μ μ¬κΈ° νΈλ¦¬κ±° μΆκ°λ₯Ό ν΄λ¦νλ€.
νΈλ¦¬κ±° μΆκ°μμ μμ€λ₯Ό μ ννλ€. μμ€λ S3λ₯Ό μ ν.
μλ κ·Έλ¦Όμ λμμλ κ² μ²λΌ λ²ν·μ μκΉ μ°λ¦¬κ° λ§λ λ²ν·μ μ ννκ³ , μλ 체ν¬λ°μ€μ νμνκ³ μΆκ°λ₯Ό λλ₯΄λ©΄ lambdaμ νΈλ¦¬κ±° μΆκ°κ° λλ€.
μ½λ-> μ½λ μμ€ μ°½μμ lambda_function.py λΌλ κΈ°λ³Έ νμ΄μ¬ νμΌμ μ νν ν μλ μ½λλ₯Ό μ½μ νκ³ Deployλ₯Ό μ ννλ©΄ λλ€.
λμ€μ μΆκ°μ μΌλ‘ λλ€ν¨μ λ³κ²½μ ν΅ν΄μ νμνκ² μμΌλ©΄ κ°μ μλ§κ² μμ νλ©΄ λλ€.
import boto3
import gzip
import json
def lambda_handler(event, context):
s3 = boto3.client('s3')
logs = boto3.client('logs')
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
response = s3.get_object(Bucket=bucket, Key=key)
log_data = gzip.decompress(response['Body'].read()).decode('utf-8')
log_group_name = 'YourLogGroupName' //ν΄λΌμ°λμμΉμ λ‘κ·Έ κ·Έλ£Ή μ΄λ¦μ μμ±νλ€.
log_stream_name = 'YourLogStreamName'// ν΄λΌμ°λμμΉμ λ‘κ·Έ μ€νΈλ¦Ό μ΄λ¦μ μμ±νλ€.
response = logs.create_log_stream(
logGroupName=log_group_name,
logStreamName=log_stream_name
)
log_events = [
{
'timestamp': int(record['eventTime'] / 1000),
'message': log_data
}
]
response = logs.put_log_events(
logGroupName=log_group_name,
logStreamName=log_stream_name,
logEvents=log_events
)
μ¬κΈ°κΉμ§ νλ©΄ λλ€ν¨μμ S3 λ²ν· κ° μ°κ²°μ΄ μλ£λλ€. μ μ½λλΈλμ 보면 λ‘κ·Έ κ·Έλ£Ή λ° λ‘κ·Έμ€νΈλ¦Όμ΄λ¦μ μμ±ν΄μΌνλ λΆλΆμ΄ μλ€. μ΄λ ν΄λΌμ°λ μμΉμμ μ€μ νλ κ²μ΄λ€. λλ€μ ν΄λΌμ°λ μμΉλ₯Ό μ°κ²°νλ λΆλΆμ΄ νμνλ€. μ΄λ λ€μ κ²μκΈμμ λ€λ€λ³΄λλ‘ νκ² λ€.
'AWS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
S3 λ²ν·μΌλ‘ μΉμ¬μ΄νΈ λ°°ν¬νλ λ² (μ μ νΈμ€ν νλ λ²) (0) | 2024.01.17 |
---|