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

Vercel部署完成后如何发起请求或运行Node.js脚本?

解决Vercel部署后自动调用第三方API的方案

方案1:使用Vercel Post-Deploy Hooks + Serverless Function

这是官方支持的原生方案,步骤如下:

    1. 在项目中创建Serverless Function文件(比如api/add-whitelist.js),编写调用第三方API的逻辑:
export default async function handler(req, res) {
  // Vercel自动注入部署URL环境变量
  const deployUrl = process.env.VERCEL_URL;
  if (!deployUrl) {
    return res.status(400).json({ error: '部署URL未找到' });
  }

  try {
    // 调用第三方API添加白名单
    const response = await fetch('第三方API地址', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        // 敏感密钥存Vercel环境变量,避免硬编码
        'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}`
      },
      body: JSON.stringify({ url: `https://${deployUrl}` })
    });

    if (!response.ok) {
      throw new Error('添加白名单失败');
    }

    res.status(200).json({ success: true, url: `https://${deployUrl}` });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
}
    1. 部署该Function到Vercel,获取其访问URL(比如https://你的项目域名.vercel.app/api/add-whitelist)。
    1. 进入Vercel项目设置页,找到Git > Post-Deploy Hooks,点击"Add"填入上述Function URL,设置触发条件(默认每次部署后触发)。
    1. 在Vercel项目Settings > Environment Variables中添加第三方API密钥等敏感信息,确保代码可读取。

方案2:Vercel CLI + 本地Node脚本

如果需要在本地触发部署后执行脚本,可结合Vercel CLI实现:

    1. 编写本地Node脚本(比如post-deploy.js):
import fetch from 'node-fetch';
import { execSync } from 'child_process';

// 执行Vercel生产部署命令
execSync('vercel deploy --prod', { stdio: 'inherit' });

// 获取最新部署URL
const deployUrl = execSync('vercel env get VERCEL_URL 你的项目名').toString().trim();

// 调用第三方API
await fetch('第三方API地址', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}`
  },
  body: JSON.stringify({ url: `https://${deployUrl}` })
});

console.log('URL已成功加入白名单');
    1. 在package.json中添加脚本命令:
"scripts": {
  "deploy": "node post-deploy.js"
}
    1. 运行npm run deploy即可完成部署+调用API的流程,需提前配置Vercel CLI登录及项目关联。

注意事项

  • 若用方案1,需确保第三方API允许Vercel Serverless Function的请求来源;方案2则需确保本地IP在第三方API白名单内。
  • 所有敏感信息必须存Vercel环境变量,禁止硬编码。
  • 若需触发预览部署的白名单操作,可在Function中通过VERCEL_ENV环境变量判断环境,或在Post-Deploy Hooks中设置触发预览部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:00:47