使用Amplify CLI更新API后,API Gateway的Cognito授权器为何被移除?
问题原因解析
- Amplify CLI基于**基础设施即代码(IaC)**逻辑运作,所有云端资源的配置都以本地项目的配置文件为唯一基准。你手动在API Gateway控制台添加的Cognito授权器,并没有同步到本地Amplify的配置文件中。
- 当你用CLI执行
amplify push这类更新API的命令时,Amplify会完全按照本地配置重新部署API Gateway资源,直接覆盖掉你在控制台手动做的所有修改——包括你添加的Cognito授权器,自然就导致身份验证功能失效了。 - 新手容易踩的坑就是直接修改控制台资源,忽略了Amplify的配置优先原则。正确的方式是在本地项目里定义授权规则:比如GraphQL API可以在schema里用
@auth指令绑定Cognito用户池;REST API则要在amplify/backend/api/<api-name>/下的配置文件里关联授权器,这样CLI更新时才会保留授权配置,不会被覆盖。
内容的提问来源于stack exchange,提问作者Héctor Manuel Muñoz Flores
相关产品推荐
相关产品推荐

