SvelteKit使用sveltekit-adapter-aws部署失败求助
问题描述
使用sveltekit-adapter-aws部署SvelteKit应用,配置代码如下:
import { adapter } from 'sveltekit-adapter-aws'; import { vitePreprocess } from '@sveltejs/kit/vite'; const config = { preprocess: vitePreprocess(), kit: { adapter: adapter({ autoDeploy: true }) } };
AWS凭证已正确配置,但执行npm run build时出现以下错误:
❌ Building assets failed: Error: Building Assets Failed: Error: sveltekit-adapter-aws-webapp: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap'
at buildAllStackAssets (/Users/git/test/node_modules/aws-cdk/lib/build.ts:21:11)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CdkToolkit.deploy (/Users/git/test/node_modules/aws-cdk/lib/cdk-toolkit.ts:197:9)
at initCommandLine (/Users/git/test/node_modules/aws-cdk/lib/cli.ts:364:12)
已执行cdk bootstrap命令,但问题依旧存在。
解决方案
确认CDK引导区域与部署目标一致
执行cdk bootstrap时若未指定区域,默认会使用AWS配置的默认区域,可能与adapter部署的区域不匹配。需明确指定目标区域重新引导:cdk bootstrap aws://<你的AWS账户ID>/<目标区域>示例:
cdk bootstrap aws://123456789012/us-east-1验证当前AWS凭证对应的账户
确保使用的AWS凭证属于执行cdk bootstrap的账户,执行以下命令确认当前账户ID:aws sts get-caller-identity若账户ID不匹配,切换到正确的凭证(如修改
~/.aws/credentials或设置环境变量)后重新执行引导。检查SSM参数是否存在
手动验证目标账户和区域中是否存在该SSM参数:aws ssm get-parameter --name "/cdk-bootstrap/hnb659fds/version" --region <目标区域>若返回参数不存在,说明之前的
cdk bootstrap未成功执行,检查执行日志排查权限或网络问题后重新执行。清理缓存后重试
删除CDK和项目缓存,避免缓存导致的异常:rm -rf .cdk node_modules/.cache npm install npm run build在adapter配置中指定区域
在svelte.config.js的adapter配置里明确指定区域,确保与CDK引导的区域一致:adapter: adapter({ autoDeploy: true, region: 'your-target-region' // 替换为实际区域,如us-west-2 })
内容的提问来源于stack exchange,提问作者Thiago

