如何让amplify pull后aws-exports.js自动使用AppSync自定义域名?
解决Amplify Pull后AppSync自定义域名不自动同步到aws-exports.js的问题
当你通过AWS Web控制台给AppSync API配置了自定义域名,但执行amplify pull后aws-exports.js里的aws_appsync_graphqlEndpoint依然指向原生端点时,可以通过以下几种方式实现自动同步,无需手动修改文件:
方法1:修改后端参数配置文件
- 打开本地Amplify项目的
amplify/backend/api/<你的API名称>/parameters.json文件 - 在JSON对象中添加或修改
GraphQLEndpoint字段,值设为你的自定义域名完整地址(比如https://api.yourdomain.com/graphql) - 保存文件后执行
amplify push,将配置同步到云端 - 之后再执行
amplify pull,aws-exports.js中的aws_appsync_graphqlEndpoint就会自动指向你的自定义域名
方法2:使用Amplify CLI的Override功能
如果参数文件中没有GraphQLEndpoint字段,或者需要更灵活的配置控制,可以通过自定义override脚本实现:
- 在
amplify/backend/api/<你的API名称>目录下创建override.ts(或override.js)文件 - 写入以下代码(以TypeScript为例):
import { AmplifyApiGraphQlResourceStackTemplate } from '@aws-amplify/cli-extensibility-helper'; export function override(resources: AmplifyApiGraphQlResourceStackTemplate) { // 替换为你的自定义域名地址 const customGraphQLEndpoint = "https://api.yourdomain.com/graphql"; // 修改API输出的端点值 resources.GraphQLAPI.outputs.GraphQLEndpoint = customGraphQLEndpoint; }
- 执行
amplify push应用这个override配置 - 后续的
amplify pull操作会自动将自定义域名写入aws-exports.js
方法3:确认环境一致性
- 执行
amplify env list查看本地Amplify项目当前使用的环境,确保其与你在Web控制台配置自定义域名的环境完全一致 - 如果环境不匹配,使用
amplify env checkout <目标环境名>切换后再执行amplify pull
注意事项
- 自定义域名必须已完成AWS Certificate Manager证书配置、DNS解析(如Route 53或其他服务商),确保可以正常访问
- 修改后端配置后,
amplify push会更新云端的Amplify后端元数据,后续所有拉取该环境的操作都会自动使用自定义域名
内容的提问来源于stack exchange,提问作者Martin Slater
相关产品推荐
相关产品推荐

