微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将变量值从 gitlab 变量调用到 Serverless 模板中

如何解决如何将变量值从 gitlab 变量调用到 Serverless 模板中

我有一个无服务器模板,用于配置 Lambda 和 API 网关。到目前为止,我已经在模板中硬编码了 vpc 详细信息,但我想从 gitlab 变量中调用变量值,而不是硬编码值。

我需要从 SG1、subnet_A 和 subnet_B 的 gitlab 变量中获取变量值。请建议我如何调用值?

########### serverless.template ##########

{

  "AWstemplateFormatVersion": "2010-09-09","Transform": "AWS::Serverless-2016-10-31","Description": "testing","Parameters": {},"Conditions": {},"provider": "aws"

    "environment":

      "Role": "${env:role}"


  "Resources": {

    "AspNetCoreFunction": {

      "Type": "AWS::Serverless::Function","Properties": {

        "Handler": 

              "<Handler_Value>","Runtime": "dotnetcore3.1","CodeUri": "","MemorySize": 256,"Timeout": 30,"Role": "${Role}","Policies": null,"VpcConfig": {
          "SecurityGroupIds": ["$SG1"],"subnetIds": [
            "${subnet_A}","${subnet_B}"
          ]
        },"Events": {
          "ProxyResource": {
            "Type": "Api","Properties": {
              "Path": "/{proxy+}","Method": "ANY"
            }
          },"RootResource": {
            "Type": "Api","Properties": {
              "Path": "/","Method": "ANY"
            }
          }
        }
      }
    }
  },"Outputs": {

    "ApiURL": {

      "Description": "testing","Value": {

        "Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/dev/"

      }

    }

  }

}

解决方法

您可以用环境变量值替换 serverless.yml 中用 ${env:..} 括号括起来的任何值,

和你在"Role": "${env:role}"中做的一样,

  • 您可以替换:"SecurityGroupIds": ["$SG1"]
  • "SecurityGroupIds": ["${env:SG1}"]

我建议您将 unresolvedVariablesNotificationMode 设置为 'error',以便在缺少环境变量时通知您,

无服务器框架变量指南:https://www.serverless.com/framework/docs/providers/aws/guide/variables/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。