Amazon Alexa 与 Raspberry Pi 通信
Amazon Alexa to Raspberry Pi Communication
我正在尝试使用 Amazon alexa modify/run 我的 Raspberry Pi 上的脚本。我目前有一个自定义 alexa 技能,它运行 Amazon lambda 函数并将消息发送到队列。然后我让 raspberry pi 不断地在队列中寻找更新。
不过,我正在寻找一种更好的方法来做到这一点。是否无法将我的 raspberry pi 注册为物联网设备并以这种方式进行通信?我乐于接受任何建议,如果您有任何想法,请告诉我,因为我对此很陌生。
您实际上可以设置您的 Raspberry Pi with SSM Manager 允许命令从 AWS 内部 运行 到您的 Raspberry Pi。
如果你在你的 Pi 上设置它,你的 Lambda 可以 运行 send-command 这将允许 Lambda 直接发送命令列表到 运行(例如触发脚本的执行)。
下面是从 Boto3 中调用此方法的示例
client = boto3.client('ssm')
response = client.send_command(
InstanceIds=[
'i-123456', #Replace this with your remote instance ID
],
DocumentName='AWS-RunShellScript',
Parameters={
'commands': [
'python3 /home/ec2-user/script.py',
]
}
)
我正在尝试使用 Amazon alexa modify/run 我的 Raspberry Pi 上的脚本。我目前有一个自定义 alexa 技能,它运行 Amazon lambda 函数并将消息发送到队列。然后我让 raspberry pi 不断地在队列中寻找更新。
不过,我正在寻找一种更好的方法来做到这一点。是否无法将我的 raspberry pi 注册为物联网设备并以这种方式进行通信?我乐于接受任何建议,如果您有任何想法,请告诉我,因为我对此很陌生。
您实际上可以设置您的 Raspberry Pi with SSM Manager 允许命令从 AWS 内部 运行 到您的 Raspberry Pi。
如果你在你的 Pi 上设置它,你的 Lambda 可以 运行 send-command 这将允许 Lambda 直接发送命令列表到 运行(例如触发脚本的执行)。
下面是从 Boto3 中调用此方法的示例
client = boto3.client('ssm')
response = client.send_command(
InstanceIds=[
'i-123456', #Replace this with your remote instance ID
],
DocumentName='AWS-RunShellScript',
Parameters={
'commands': [
'python3 /home/ec2-user/script.py',
]
}
)