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

创建含Proactive Events API的Alexa Skill时AWS栈部署失败

解决Amazon Alexa Skill Proactive Events部署时CloudFormation栈回滚问题

核心问题定位

你遇到的PermanentRedirect错误是明确的区域不匹配问题:CloudFormation在us-east-1区域执行栈部署,但引用的Lambda代码存储在eu-west-1的S3桶中,跨区域直接访问S3桶会触发重定向错误,导致Lambda创建失败,最终栈回滚。

具体解决方向

  • 统一AWS操作区域

    1. 检查deploy.sh脚本中的区域配置,确保脚本指定的部署区域与S3桶所在的eu-west-1一致;如果需要使用us-east-1区域,就在该区域重新创建S3桶并上传Lambda代码包。
    2. 执行部署前,通过AWS CLI设置默认区域:aws configure set region us-east-1(或eu-west-1),确保CLI操作区域与目标区域统一。
  • 修正CloudFormation模板的S3引用
    如果需要保留eu-west-1的S3桶,在pingme.yaml的Lambda资源配置中添加S3Region参数,明确指定桶所在区域,示例:

    Resources:
      YourLambdaFunction:
        Type: AWS::Lambda::Function
        Properties:
          Code:
            S3Bucket: your-existing-eu-west-1-bucket
            S3Key: lambda-deployment-package.zip
            S3Region: eu-west-1
          # 其他Lambda配置项
    
  • 验证AWS用户权限

    1. 确保当前AWS用户拥有以下权限:
      • CloudFormation栈创建/更新的相关权限(如cloudformation:CreateStack、cloudformation:UpdateStack)
      • Lambda函数创建权限(lambda:CreateFunction)
      • S3对象读取权限(s3:GetObject),如果跨区域访问S3,需确保没有桶策略或IAM策略限制区域访问。
    2. 检查S3桶的桶策略,确认是否存在阻止us-east-1区域访问的条件语句,如有则调整策略允许对应区域访问。
  • 重新部署流程

    1. 先清理已回滚的空栈:aws cloudformation delete-stack --stack-name PingMe
    2. 完成上述配置修正后,重新运行deploy.sh脚本,或手动通过CloudFormation控制台部署修正后的pingme.yaml
    3. 部署时可实时监控栈事件:aws cloudformation describe-stack-events --stack-name PingMe --watch,快速定位新的问题点

内容的提问来源于stack exchange,提问作者John Harris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:15:32