You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于HTTPS端点开发Amazon Alexa技能的步骤指导请求

从AWS Lambda切换到HTTPS端点开发Alexa技能的详细步骤

嘿,我之前也把自己的Alexa技能从Lambda迁移到了HTTPS端点,踩过几个小坑,给你梳理下完整流程,一步步来就没问题:

1. 准备你的HTTPS服务器

首先得有一个能被公网访问的服务器,并且配置好有效的SSL证书(Alexa只信任正规CA签发的证书,比如Let's Encrypt的免费证书就完全够用,别用自签证书,不然Alexa会直接拒绝请求)。

服务器可以选云服务商的EC2、轻量应用服务器,甚至是自己的物理服务器(只要有公网IP),端口建议用HTTPS默认的443端口,省得额外配置防火墙规则。

2. 迁移技能逻辑到服务器

你之前在Lambda里写的请求处理代码,现在要迁移到自己的服务器上。核心就是创建一个POST接口,接收Alexa发送的JSON请求,处理后返回符合Alexa规范的JSON响应。

举个Node.js的简单例子(用Express框架):

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());

// 处理Alexa请求的接口路径
app.post('/my-alexa-skill', (req, res) => {
  // 这里直接复用你Lambda里的业务逻辑就行
  const alexaRequest = req.body;
  // 比如处理LaunchRequest或自定义意图
  const response = {
    version: '1.0',
    response: {
      outputSpeech: {
        type: 'PlainText',
        text: '终于通过HTTPS端点响应你啦!'
      },
      shouldEndSession: true
    }
  };
  res.json(response);
});

// 启动服务器(443端口需要root权限,也可以用Nginx反向代理转成普通端口)
app.listen(443, () => {
  console.log('HTTPS服务器已启动,等待Alexa请求');
});

如果想省事儿,直接用Alexa SDK的适配工具,还能自动处理请求签名验证(这个是必做项,后面会说),比如Node.js的ask-sdk-express-adapter:

const { ExpressAdapter } = require('ask-sdk-express-adapter');
const { SkillBuilders } = require('ask-sdk-core');

// 这里就是你之前Lambda里的请求处理器
const LaunchRequestHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
  },
  handle(handlerInput) {
    return handlerInput.responseBuilder
      .speak('欢迎使用我的HTTPS技能!')
      .getResponse();
  }
};

// 构建技能实例
const skill = SkillBuilders.custom()
  .addRequestHandlers(LaunchRequestHandler)
  .create();

// 适配Express服务器,自动处理签名验证
const adapter = new ExpressAdapter(skill, true, true);

app.post('/my-alexa-skill', adapter.getRequestHandlers());
app.listen(443);

3. 在Alexa开发者控制台配置HTTPS端点

打开你的技能项目,进入Build > Endpoint页面:

  • 把原来的Lambda ARN选项切换到HTTPS
  • 输入你的服务器完整URL,比如https://your-domain.com/my-alexa-skill
  • 在下方的“SSL Certificate Type”里选对应选项:
    • 如果是通配符证书或覆盖该域名的证书,选第一个选项
    • 如果是单域名证书,选第二个选项(“My development endpoint has a certificate from a trusted certificate authority”)

保存配置即可。

4. 验证请求签名(必做!)

Alexa会对每个请求进行签名,你的服务器必须验证签名,确保请求确实来自Alexa——不然技能可能被恶意攻击,甚至被Alexa封禁。

如果用了上面的Alexa SDK适配器,这个验证会自动完成。如果是自己写逻辑,需要:

  • 提取请求头里的Signature和SignatureCertChainUrl
  • 下载证书链并验证其有效性
  • 用证书验证请求体的签名

5. 测试技能

配置完成后,进入Alexa开发者控制台的Test页面,开启测试模式:

  • 用控制台的模拟器发送请求,检查服务器是否能正确返回响应
  • 也可以用实际的Alexa设备测试,确保交互流程正常

几个关键注意点

  • 服务器必须能被公网访问,检查防火墙是否开放了443端口
  • SSL证书要定期更新,避免过期导致技能失效
  • 确保响应符合Alexa的JSON格式,比如version字段必须是1.0,响应结构不能错
  • Alexa要求端点在8秒内返回响应,所以服务器的响应速度要达标

内容的提问来源于stack exchange,提问作者Krishna priya v

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:07:26