【问题标题】:How to deploy a Serverless function using Gitlab CI?如何使用 Gitlab CI 部署无服务器功能?
【发布时间】:2019-03-01 19:22:33
【问题描述】:

我正在尝试使用 .gitlab-ci.yml 文件部署我的无服务器函数,并将环境变量注入我的函数中,我在我的 serverless.yml 文件中使用了这种格式:

${file(./serverless.env.yml):${opt:stage, 'dev'}.VARIABLE_1_KEY}

我的serverless.env.yml 文件如下所示:

staging:
  VARIABLE_1_KEY: xxxxxxx
  VARIABLE_2_KEY: xxxxxxx
  SUBNET_IDS:
    - xxxxxx
    - xxxxxx

production:
  VARIABLE_1_KEY: xxxxxxx
  VARAIBLE_2_KEY: xxxxxxx
  SUBNET_IDS:
    - xxxxxx
    - xxxxxx

我的问题是我没有提交我的 serverless.env.yml 文件,这意味着 Gitlab 将无法使用它来部署该函数。

我可以将变量更改为这种格式${env:VARIABLE_KEY},但这给我留下了SUBNET_IDS 是值列表并且在从环境变量解析值时不起作用的问题。

有没有更好的方法在项目中定义与 Gitlab CI 流程兼容的秘密?

【问题讨论】:

    标签: environment-variables gitlab-ci serverless-framework


    【解决方案1】:

    要定义项目级别的机密,您可以访问:

    你的项目 -> 设置 -> CI/CD -> 变量

    秘密将通过环境变量提供。你可以阅读更多关于变量here

    关于SUBNET_IDS 列表的问题。您可以将每个变量定义为不同的变量,也可以将它们与一个字符(例如,或 ;)连接起来,然后在脚本中拆分它们。

    【讨论】:

    • 如果将变量注入到我的脚本中,则拆分特殊字符会起作用,但在这种情况下,变量会直接发送到仅接受字符串列表的 AWS。
    猜你喜欢
    • 2022-12-09
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2021-06-20
    • 2019-08-31
    • 2021-07-27
    相关资源
    最近更新 更多