在 Github Actions 中创建动态密钥名称

Posted

技术标签:

【中文标题】在 Github Actions 中创建动态密钥名称【英文标题】:Create dynamic secret names in Github Actions 【发布时间】:2021-12-18 15:54:24 【问题描述】:

我的目标实际上很简单,但我不确定是否可以在 Github Actions 中实现。所以我有一个用于部署不同 Azure 订阅/租户的操作文件。所以我对它们中的每一个都有不同的 AZURE_CREDENTIALS。

例如 AZURE_CREDENTIALS_NUM1 就是其中之一。我将 NUM1 的名称作为客户名称提供给配置文件中的脚本,但我不想在脚本中使用相同密钥的任何地方进行更改。我尝试了这种方法,但没有奏效:

    - uses: azure/login@v1
      with:
        creds: $ "$needs.Parameters.outputs.azureCredentials" 

在 needs.Parameters.outputs.azureCredentials 部分中,我为 AZURE_CREDENTIALS_NUM1 创建了名称,但 Github Actions 不接受此语法。

【问题讨论】:

【参考方案1】:

您需要添加如下掩码:

    - name: Add mask
      run: |
        echo "::add-mask::$needs.Parameters.outputs.azureCredentials"
    - uses: azure/login@v1
      with:
        creds: $needs.Parameters.outputs.azureCredentials

然后它将在日志中被屏蔽。更多详情请查看here

【讨论】:

我想我解释得有点模糊。我想要实现的目标有点不同。例如,每次我为不同的产品创建新部署时,Azure 机密名称都会更改。 $needs.Parameters.outputs.azureCredentials 这个输出只包含秘密名称的信息。例如,输出是 AZURE_CREDENTIALS_NUM1。在这个例子中。我正在尝试实现动态秘密名称,因此例如在未来的部署中它将是 AZURE_CREDENTIALS_NUM2

以上是关于在 Github Actions 中创建动态密钥名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中创建动态变量名?

在 PHP 可读的 javascript 中创建 PEM 密钥对

如何在 Terraform 中创建 SSH 密钥?

如何使用 Github Actions 进行 SFTP?

如何在 GitHub Actions 中使用最新发布标签?

有人知道从 GitHub Actions 中删除工作流的方法吗?