0

我正在尝试通过 sbt 创建 AWS lambda 函数。我有 sbt 插件

 addSbtPlugin("com.gilt.sbt" % "sbt-aws-lambda" % "0.6.6")

我有一个环境变量

'val env = Option(System.getProperty("myEnv")).getOrElse("int")'

我想在下面的 sbt 设置中使用这个变量,并在 sbt 设置下针对 lambda 名称使用以下参数

.settings(
    s3Bucket := Some(s"bucket-name-resized-payload"),
    **lambdaName := Some(s"xxxx-xxxxx-$env"),**
    fork in Test := true,
    handlerName := Some("handler name"),
    roleArn := Some("arn:aws:iam::xxxxxxxx:role/xxx_xx_xxxx_role"),
    region := Some("eu-xxxx-1"),
    awsLambdaTimeout := Some(60),
    deployMethod := Some("S3")

我想要实现的是,如果代码在集成环境中运行,那么创建的函数应该是 Xxxx-xxx-int,同样在 prod.staging xxx-xxx-sta 中。sbt 是通过 Jenkins 构建的。现在我对如何在通过 jenkins 构建代码时如何传递参数 sbt -Denv := 感到困惑,我不希望为所有环境创建相同的 lambda 名称。请帮忙

4

1 回答 1

0

你有两个独立的詹金斯管道吗?一种用于集成,一种用于生产?如果是这种情况,那么您可以通过sbt -Denv=int在一个管道中运行来简单地构建工件,然后sbt -Denv=sta

如果您对 prod 和 int env 都有单个管道,那么您如何决定需要生成哪些工件(prod/int)?

于 2019-02-11T15:55:56.503 回答