介绍
随着云计算的普及,Serverless 架构也越来越受到人们的关注。Serverless 架构的一个重要组成部分就是 AWS Lambda,而 AWS Lambda 的配置文件使用 CloudFormation 模板。但是,在进行 Serverless 构建时,常常需要引用 CloudFormation 模板参数。这就需要用到 serverless-cloudformation-parameters 这个 npm 包。
serverless-cloudformation-parameters 是一个 Node.js 模块,可以轻松的将 CloudFormation 模板参数与 Serverless 构建命令行(CLI)参数进行关联。
在这篇文章中,我们将介绍如何使用 serverless-cloudformation-parameters,并提供实际的代码示例。
准备工作
在开始前,请确保已经安装了 Node.js 和 Serverless Framework。
首先,需要在 Serverless Framework 项目中添加 serverless-cloudformation-parameters:
--- ------- ---------- ------------------------------------
接着,在 serverless.yml 文件中添加以下配置:
-------- - ------------------------------------
使用 serverless-cloudformation-parameters
使用 serverless-cloudformation-parameters 的方式非常简单。只需要在 Serverless 构建命令行(CLI)上指定模板参数名称和对应的 CLI 参数即可。
例如,假设在 CloudFormation 模板文件中有一个名为 MY_BUCKET_NAME
的参数。可以在 serverless.yml 文件中添加以下配置:
------- ------------- ------------------------------- --- --------------- ---------------------------
这里使用了 Serverless Framework 内置的 CloudFormation 部署阶段命令,即 serverless deploy
命令,同时将 MY_BUCKET_NAME
参数与 custom.myBucketName
进行绑定。
接着,可以在使用 Serverless 构建命令时,直接添加 --my-bucket-name
参数,如下所示:
---------- ------ ---------------- --------------------
在这个例子中,my-bucket-name-value
将自动存储到 MY_BUCKET_NAME
参数中,然后传递给 CloudFormation 模板。
示例代码
下面是一个使用 serverless-cloudformation-parameters 的完整示例代码:
-------- ---------- -------- - ------------------------------------ ------- ------------------ ------------------------------------ --- -------------------- -------------------------------- --------- ----- --- -------- ---------- ------ ------------ -------------------- ------ ------- ------------- --------------------- ------------ ---------- ----------- -------- ------------- ---------- ---------- --------- ----- --------------- ----------- ----------- -------------------------------------
在上述示例代码中,定义了一个名为 myCustomParameter
的自定义参数,并将其关联到 MY_CUSTOM_PARAMETER
CloudFormation 模板参数上。在 CloudFormation 模板中,可以通过 ${self:custom.cf.MY_CUSTOM_PARAMETER}
来引用这个参数。
此外,在 serverless.yml 文件中也定义了一个名为 myFunction
的 Lambda 函数,在其中使用了 MY_CUSTOM_PARAMETER
。
最终,使用 serverless deploy --my-custom-parameter my-custom-parameter-value
命令进行部署时,my-custom-parameter-value
将会被自动存储到 MY_CUSTOM_PARAMETER
参数中,然后传递给 CloudFormation 模板。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056ca581e8991b448e60fd