Twilio Autopilot을 만져 보았습니다.
할 일
전화를 걸면 Twilio가 API Gateway를 통해 서버를 시작 중지하는 Lambda를 호출하는 메커니즘을 만듭니다.
주) 인증적인 것은 넣지 않습니다.
필요한 것
절차 개요
1. [AWS] lambda 생성
import boto3
import json
INSTANCE_ID = 'I-*****************'
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
command = get_command(event)
reply = ''
if command == 'start':
res = ec2.start_instances(
InstanceIds=[INSTANCE_ID]
)
reply = 'The server is starting.'
elif command == 'stop':
res = ec2.stop_instances(
InstanceIds=[INSTANCE_ID]
)
reply = 'The server is stopping'
else:
reply = 'Please tell me start or stop.'
body = {
'actions': [
{
'say': reply
}
]
}
return({
'isBase64Encoded': False,
'statusCode': 200,
'headers': {},
'body': json.dumps(body)
})
def get_command(event):
try:
command = event['pathParameters']['command']
except KeyError as err:
command = 'other'
return command
2. [AWS] api 생성
API Gateway에서 api를 만들고 배포합니다.
품목
값
방법
POST
Lambda 프록시 통합 사용
ON
스테이지 이름
prod
3. [Twilio] virtual assistant 만들기
twilio 콘솔에서 Autopilot > Create a New Assistant를 선택하여 virtual assistant를 만듭니다.
4. [Twilio] task 만들기
Task를 3개 작성합니다.
initial
{
"actions": [
{
"say": "Do you want to strat a hoge server or stop a hoge server?"
},
{
"listen": true
}
]
}
시작
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/start"
}
]
}
stop
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/stop"
}
]
}
5. [Twilio] sample을 작성하여 모델 빌드
6. [Twilio] 전화번호에 virtual assistant를 묶는다
[Channels] - [Programmable Voice]의 VOICE URL을 복사합니다.
아래 그림의 빨간색 테두리에 붙여넣어 전화 번호와 연결합니다.
7. [Twilio] 테스트하기
Twilio에서 구입한 전화번호로 전화하여 '시작' 또는 '중지'를 지시합니다.
잡감
그 1
발음이 나쁜 것인지, stop의 분 밖에 인식해 주었습니다. 빨리 일본어에 대응하지 않을까. .
그 2
최근의 twilio는 SendGrid를 인수하거나 전화의 틀을 넘어 커뮤니케이션 분야 전체에 손을 펼치는 것처럼 보입니다. 그 중 Slack이나 Facebook을 삼키기도 하고. . .
Reference
이 문제에 관하여(Twilio Autopilot을 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sirotosiko/items/78006c4db718d8737dd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import boto3
import json
INSTANCE_ID = 'I-*****************'
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
command = get_command(event)
reply = ''
if command == 'start':
res = ec2.start_instances(
InstanceIds=[INSTANCE_ID]
)
reply = 'The server is starting.'
elif command == 'stop':
res = ec2.stop_instances(
InstanceIds=[INSTANCE_ID]
)
reply = 'The server is stopping'
else:
reply = 'Please tell me start or stop.'
body = {
'actions': [
{
'say': reply
}
]
}
return({
'isBase64Encoded': False,
'statusCode': 200,
'headers': {},
'body': json.dumps(body)
})
def get_command(event):
try:
command = event['pathParameters']['command']
except KeyError as err:
command = 'other'
return command
API Gateway에서 api를 만들고 배포합니다.
품목
값
방법
POST
Lambda 프록시 통합 사용
ON
스테이지 이름
prod
3. [Twilio] virtual assistant 만들기
twilio 콘솔에서 Autopilot > Create a New Assistant를 선택하여 virtual assistant를 만듭니다.
4. [Twilio] task 만들기
Task를 3개 작성합니다.
initial
{
"actions": [
{
"say": "Do you want to strat a hoge server or stop a hoge server?"
},
{
"listen": true
}
]
}
시작
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/start"
}
]
}
stop
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/stop"
}
]
}
5. [Twilio] sample을 작성하여 모델 빌드
6. [Twilio] 전화번호에 virtual assistant를 묶는다
[Channels] - [Programmable Voice]의 VOICE URL을 복사합니다.
아래 그림의 빨간색 테두리에 붙여넣어 전화 번호와 연결합니다.
7. [Twilio] 테스트하기
Twilio에서 구입한 전화번호로 전화하여 '시작' 또는 '중지'를 지시합니다.
잡감
그 1
발음이 나쁜 것인지, stop의 분 밖에 인식해 주었습니다. 빨리 일본어에 대응하지 않을까. .
그 2
최근의 twilio는 SendGrid를 인수하거나 전화의 틀을 넘어 커뮤니케이션 분야 전체에 손을 펼치는 것처럼 보입니다. 그 중 Slack이나 Facebook을 삼키기도 하고. . .
Reference
이 문제에 관하여(Twilio Autopilot을 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sirotosiko/items/78006c4db718d8737dd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Task를 3개 작성합니다.
initial
{
"actions": [
{
"say": "Do you want to strat a hoge server or stop a hoge server?"
},
{
"listen": true
}
]
}
시작
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/start"
}
]
}
stop
{
"actions": [
{
"redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/stop"
}
]
}
5. [Twilio] sample을 작성하여 모델 빌드
6. [Twilio] 전화번호에 virtual assistant를 묶는다
[Channels] - [Programmable Voice]의 VOICE URL을 복사합니다.
아래 그림의 빨간색 테두리에 붙여넣어 전화 번호와 연결합니다.
7. [Twilio] 테스트하기
Twilio에서 구입한 전화번호로 전화하여 '시작' 또는 '중지'를 지시합니다.
잡감
그 1
발음이 나쁜 것인지, stop의 분 밖에 인식해 주었습니다. 빨리 일본어에 대응하지 않을까. .
그 2
최근의 twilio는 SendGrid를 인수하거나 전화의 틀을 넘어 커뮤니케이션 분야 전체에 손을 펼치는 것처럼 보입니다. 그 중 Slack이나 Facebook을 삼키기도 하고. . .
Reference
이 문제에 관하여(Twilio Autopilot을 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sirotosiko/items/78006c4db718d8737dd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[Channels] - [Programmable Voice]의 VOICE URL을 복사합니다.
아래 그림의 빨간색 테두리에 붙여넣어 전화 번호와 연결합니다.
7. [Twilio] 테스트하기
Twilio에서 구입한 전화번호로 전화하여 '시작' 또는 '중지'를 지시합니다.
잡감
그 1
발음이 나쁜 것인지, stop의 분 밖에 인식해 주었습니다. 빨리 일본어에 대응하지 않을까. .
그 2
최근의 twilio는 SendGrid를 인수하거나 전화의 틀을 넘어 커뮤니케이션 분야 전체에 손을 펼치는 것처럼 보입니다. 그 중 Slack이나 Facebook을 삼키기도 하고. . .
Reference
이 문제에 관하여(Twilio Autopilot을 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sirotosiko/items/78006c4db718d8737dd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그 1
발음이 나쁜 것인지, stop의 분 밖에 인식해 주었습니다. 빨리 일본어에 대응하지 않을까. .
그 2
최근의 twilio는 SendGrid를 인수하거나 전화의 틀을 넘어 커뮤니케이션 분야 전체에 손을 펼치는 것처럼 보입니다. 그 중 Slack이나 Facebook을 삼키기도 하고. . .
Reference
이 문제에 관하여(Twilio Autopilot을 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sirotosiko/items/78006c4db718d8737dd2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)