Amazon Polly는 텍스트를 생생한 음성으로 변환하는 서비스로서
이를 사용하면 말을 하는 애플리케이션을 만들고 전혀 새로운 유형의 음성 지원 제품을 개발할 수 있습니다.
<0> 구성
User ------- S3------ APIGateway --- Lambdb -----Dynamodb
User ------- S3------ APIGateway --- Lambdb ----- SNS------Lambda-----Polly
구성도 아래 부분
User ------- S3------ APIGateway --- Lambdb ----- SNS------Lambda-----Polly
<1> 다이나모 디비 만들기
<2> S3 만들기
<3> SNS 만들기
<4> 새 포스트 Lambda 생성
<5> 람다로 오디오로 변경
<6> 람다 테스트
User ------- S3------ APIGateway --- Lambdb -----Dynamodb
<7> 포스트를 얻는 lambda 함수 생성
<8> API Gateway 사용하기
<9> S3로 사이트 만들기
<1> 다이나모 디비 만들기
서비스 > 다이나모 디비 > 테이블 만들기 > 테이블 이름
posts
주요 키
id
(string)
만들기
<2> S3 만들기
1
S3 > 버킷 만들기 >
audioposts-111
다음 > 다음 > 다음 > 버킷 만들기
2
버킷 클릭 > 권한 > 퍼블릭 액세스 차단 > 편집 > 체크 해제> 저장 > 확인
<3> SNS 만들기
SNS > 주제 > 주제 생성 >
new_posts
New posts
주제 생성
Topic ARN 확인
arn:aws:sns:us-west-2:520304294899:new_posts
<4> 새 포스트 Lambda 생성
1
람다> 함수 생성 >
PostReader_NewPost
python2.7
기존 역할 사용 > 람다-역할 선택 > 함수 생성
// 람다 함수 수정 > 저장
2
환경변수 > 편집 > 환경변수 추가
키
SNS_TOPIC
값
arn:aws:sns:us-west-2:520304294899:new_posts
키
DB_TABLE_NAME
값
posts
> 저장
테스트
Joanna
{
"voice": "Joanna",
"text": "This is working!"
}
실행결과 : 성공 확인하기
<5> 오디오로 변경하는 람다 함수
TEXT 를 음성으로 변경해 Dynamodb에 저장한다.
1
람다 > 함수 생성 >
ConvertToAudio
pythone2.7
기존 역할 사용 > 함수 생성
// 오디오로 변경되는 함수
2
환경변수 > 환경 변수 추가
DB_TABLE_NAME
posts
BUCKET_NAME
audosss-111
저장
3
기본 설정
제한시간 5분
저장
4
위쪽 > 디자이너 > 트리커 추가 > SNS
new_posts
add
추가
<6> 테스트 lambda
1
함수 > 새 포스트 > 테스트 > 성공
2
서비스 > 다이나모 디비 > 테이블 > posts 테이블 > 항목 탭
3
서비스 > 람다 > Converttoaudio 함수 선택 > 모니터링 탭 > CloudWatch 에서 로그 보기
4
서비스 > S3 버킷 > mp3 파일이 있는것이 확인 된다.
<7> 포스트를 얻는 lambda 함수 생성
1
서비스 > 람다 > 함수생성
PostReader_GetPost
python2.7
기존 역할 사용
// 람다 함수 코드 수정
2
환경 변수 > 환경 변수 추가
DB_TABLE_NAME
posts
저장
3
테스트
AllPosts
{ "postId": "*" }
생성
테스트
<8> API Gateway 사용하기
1
서비스 > API Gateway
REST API > 구축 > 새 API
PostReaderAPI
API for PostReader Application
AP{I 생성
2
리소수 > 작업 > 메소드 생성 > POST
람다함수
PostReader_NewPost
저장
3
작업 > 메소드 생성 > GET
PostReader_GetPost
저장
4
작업 > 크로스 활성화 > 활성화로 기존 값대체 클릭
5
GET > 메서트 리퀘스트 클릭 > URL 퀘리 문자열 파라미터 > 퀘리 문자열 추가 >
postId
6
다시 GET 으로
통합 요청 > 매핑 템플릿 > 정의된 템플릿이 없는 경우(권장) > 매핑 테이블 추가 >
application/json
generate template
{ "postId" : "$input.params('postId')" }
저장
7
GET > 실행 > Deploy API > 새 스테이지
dev
배포
URL 호출 복사해 놓기
https://aaaaaaaf.execute-api.us-west-2.amazonaws.com/dev
<9> S3로 사이트 만들기
1
S3 > 버킷 만들기
www-11122
만들기
정책
퍼블릭 액세스 차단 > 편집 > 체크 해지
2. 호스팅으로 설정하기
다운 받은 index.html 사용
3
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::www-11122/*"
]
}
]
}
https://aws.amazon.com/ko/polly/
감사합니다.