버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

  1. PostNews와 같이  Create function  버튼을 클릭해서 UpdateNews  함수를 생성합니다. Runtime과 Role 설정은 기존과 동일합니다.


  2. UpdateNews 의 함수 코드를 아래 코드로 대체합니다. 반드시 Deploy 버튼을 눌러서 저장하세요.

    코드 블럭
    from __future__ import print_function
     
    import boto3
    import os
    import json
    from contextlib import closing
    from boto3.dynamodb.conditions import Key, Attr
    import re
     
    def lambda_handler(event, context):
        polly_message = event["Records"][0]["Sns"]["Message"]
        print (polly_message)
        polly_response = json.loads(polly_message)
     
        # Updating the item in DynamoDB
        dynamodb = boto3.resource('dynamodb')
        table = dynamodb.Table(os.environ['DB_TABLE_NAME'])
      
        response = table.update_item(
            Key={
                'id': polly_response["taskId"]
            },
            UpdateExpression="set pollyStatus = :s",
            ExpressionAttributeValues={
                ':s': polly_response['taskStatus']
            }
        )
         
        print(response)
         
        s3 = boto3.client('s3')
        s3.put_object_acl(
            ACL = 'public-read',
            Bucket = os.environ['BUCKET_NAME'],
            Key = polly_response["taskId"] + ".mp3"
        )
         
        return


  3. Environment variables는 DB_TABLE_NAME에  NewsTable 값을 입력하고, BUCKET_NAME에는 S3 버킷 이름( polly-mp3.awsdemo.kr )을 지정합니다. Tags에 Name과  NewsApp 을 입력하고, Timeout을  1 min 으로 수정한후, 우측 상단의 Save 버튼을 클릭하여 저장합니다.




  4. UpdateNews Lambda 함수는 SNS Topic에 의해서 트리거 되어 동작이 되어야 합니다.  따라서 Function Overview에서 좌측 하단의 Add trigger 버튼을 클릭합니다.
  5. 트리거를 위하여 SNS를 클릭합니다. SNS topic 으로  NewsTopic  을 지정합니다. 해당 SNS에서 맞는지 확인하고 Add 버튼을 클릭하여 트리거를 등록하고 확인합니다.
     



...

Amazon S3는 정적 웹 페이지를 호스팅 할 수 있습니다. 다음의 링크를 통해  정적 웹 호스팅을 하기 위한 패키지를 다운로드 할 수 있습니다: 3개의 파일(html, css, javascript)가 포함되어져 있으며, JavaScript 를 사용하여 동적 컨텐츠 API 호출을 API Gateway로 연결합니다.

...