Siri를 통해 AWS 이번달 청구금액 알아보기 튜토리얼

서버리스 초보자도 누구나 할 수 있는 상세한설명!

Harry The Great
해리의 유목코딩
6 min readDec 23, 2018

--

IOS 12버전부터 단축어 앱을통해 Restful 요청을 보내고 데이터를 리턴받을 수 있게 되었습니다. 이를통해 API Gateway를 활용한다면 매일매일 청구정보를 손쉽게 볼 수 있습니다.

들어가기에앞서

만들어볼 워크플로우

본 내용은 누구나 정말 간단하게 만들 수 있는 방법을 추구하고있기때문에 기타 플러그인의 사용이나 serverless.js,sam,terraform같은 플러그인이 아닌 콘솔로만 진행하였습니다. 이미 람다와 API Gateway에 능숙하시다면 하단 아이폰 설정부분만 보시길 추천드립니다!

먼저 청구정보를 가져올 Lambda 함수를 만들어보겠습니다.

AWS 콘솔 서비스 패널

Lambda 콘솔로 이동합니다.

함수 만들기를 누른 후 원하는 이름을 작성합니다. 런타임은 nodejs 8.10을 선택한 후 역활은 사용자지정역활을 누릅니다.

[새 IAM역활 생성]을 선택한 후 원하는 역활 이름을 입력한 후 [정책 문서 보이기] -> [편집]을 누릅니다.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage",
],
"Resource": [
"*"
]
}
]
}

그럼 텍스트박스가 활성화되는데 위와같이 입력합니다. 위 JSON 구성은 람다가 결제 정보에 접근할 수 있는 권한을 줍니다.

위와 같은 코드를 복사해서 코드편집기에 붙여넣기를 해줍니다.

최상단 Designer패널

상단 패널의 트리거 목록중 API Gateway를 드래그하여 트리거에 추가합니다.

보안설정은 잠시 확인만하고 끄는 경우라면 열기를 해도 괜찮지만 되도록이면 API키로 열기를 설정하는것을 추천드립니다. (보안은 생명!)

기존 API Gateway 엔드포인트에 추가해주거나 새 API 생성합니다. 처음 설정하는 경우에 새 API 설정을 누른 후 API이름은 ag_siri와 같은 이름으로 설정해주고 배포단계는 간단히 api를 입력합니다. 이제 패널 오른쪽 하단 흰색 [추가]버튼을 누른 후 마지막으로 오른쪽 상단의 주황색 [저장]버튼도 눌러주세요.

그럼 API Gateway 세팅이 완료되고 아래 세부정보 텍스트를 누릅니다.그럼 API Key와 엔드포인트를 잘 저장해둡니다. 이제 서버쪽 설정은 끝났습니다.

아이폰설정

단축어(Workflow)앱

단축어앱은 이전에 Workflow라는 유료앱이었지만 애플에서 인수를 한 이후 누구든 무료로 다운받아 이용할 수 있습니다. 기기에 설치가 되어있지 않다면 스토어를 통해 다운받아주세요)

워크플로우 만들기

앱 메인화면

단축어 생성을 눌러줍니다.

하단 검색에서 url을 검색하여 추가한 후 조금 전 API Endpoint를 입력합니다.

url을 입력했으면 다시 검색패널에서 URL 컨텐츠 가져오기를 검색 해 추가합니다. 현재 튜토리얼에서는 메소드는 Any로 되어있기때문에 간단히 GET으로 설정하고 헤더에서 x-api-key에 조금 전 확인했던 API KEY를 입력합니다.

다음으로 입력에서 사전 가져오기를 추가합니다.

그 다음으로 사전 값 가져오기를 누른 후 billing을 입력합니다. 소스코드를 그대로 복붙한 경우가 아니라면 return에 맞게 넣어줍니다.

그 다음 텍스트 말하기를 눌러 시리가 말할 수 있도록 추가합니다. 이제 대부분의 설정은 끝났습니다.

상단 패널 오른쪽 버튼을 누릅니다.

시리 추가하기

그 후 뷰컨트롤러에서 Siri에 추가를 누릅니다.

마지막으로 원하는 문구를 녹음해주고 시리를 실행시켜 문구를 말하면 완료됩니다.

마치며

API Gateway와 시리를 응용하면 정말 여러가지를 만들 수 있을것같습니다. Step Function을 실행한다거나 원하는 동작등을 정말 손쉽게 만들 수 있는것같습니다.

참고 및 인용

http://www.wisdomofjim.com/blog/sending-an-email-from-aws-lambda-function-in-nodejs-with-aws-simple-email-service

https://www.centare.com/blog/2018/10/hey_siri_whats_my_aws_spend_this_month/

--

--

Harry The Great
해리의 유목코딩

Android & IOS Developer 😀 미디움 이외에 스니펫이나 디버그노트로 활용하는 https://www.harrymikoshi.com/ 블로그도 운영하고있습니다.