如何在Bash中捕获无服务器部署的URL?

时间:2018-07-09 13:44:31

标签: serverless-framework

完成serverless deploy之后,如何设置将无服务器应用程序部署到的URL。这对我很有用,因为以后我可以在构建Javascript网站时使用此URL传递给我。

2 个答案:

答案 0 :(得分:1)

您有一些选择。我最近制作了一个名为serverless-build-client的插件,可能会有所帮助。在我的项目中,我的客户端是其自己的Serverless Framework项目,在环境变量部分中,我从另一个堆栈交叉引用了端点

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的插件,它将所有serverless.yml的输出写入一个json文件。输出之一是ServiceEndpoint,我编写了一个自定义脚本来从json文件中获取该值,并在构建之前设置环境变量

答案 1 :(得分:0)

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

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

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