代码之家  ›  专栏  ›  技术社区  ›  Derrops

如何在bash中捕获无服务器部署的url?

  •  0
  • Derrops  · 技术社区  · 6 年前

    做完之后 serverless deploy ,如何设置将无服务器应用程序部署到变量的url。这对我很有用,因为我可以在将来使用这个url在构建javascript网站时传递到它。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Derrops    6 年前

    对于那些需要这个的人,我最终做了以下事情:

    URL="$(serverless info --verbose | grep ServiceEndpoint | sed s/ServiceEndpoint\:\ //g)"
    

    将变量url设置为您的无服务器应用程序终结点。

        2
  •  1
  •   TFischer    6 年前

    你有几个选择。我最近做了一个插件 serverless-build-client 也许会有帮助。在我的项目中,我的客户机是它自己的无服务器框架项目,在环境变量部分,我从另一个堆栈交叉引用端点。

    provider:
      environment:
        REACT_APP_ENDPOINT: ${cf:my-backend.ServiceEndpoint}
    

    此插件将使用 serverless.yml 文件集。插件的核心是

    const environment = this.serverless.service.provider.environment;
    Object.keys(environment).forEach(variable => {
      process.env[variable] = environment[variable];
    });
    
    // later
    spawn("yarn", ["build"]);
    

    在我制作这个插件之前,我使用了另一个名为 serverless-stack-output ,它将 无服务器.yml 输出到json文件。其中一个输出是 ServiceEndpoint ,我编写了一个自定义脚本来从json文件中获取该值,并在构建之前设置环境变量。