【问题标题】:Deploying google cloud function with access to private nuget repository from Google cloud build with secret manager部署谷歌云功能,通过秘密管理器从谷歌云构建访问私有 nuget 存储库
【发布时间】:2022-06-30 03:43:53
【问题描述】:

您知道是否可以部署谷歌云功能而不将私有 nuget 凭据存储在代码中,而是将它们保存在秘密管理器中? 我试图这样实现它:

λ gcloud functions deploy function_name --entry-point Function \ 
--region europe-west1 --trigger-http --project project_name \ 
--set-env-vars ASPNETCORE_ENVIRONMENT=Production \
--set-secrets 'DEPLOY_API_KEY=DEPLOY_API_KEY:latest' \
--set-secrets 'NUGET_USER=NUGET_USER:latest'

但谷歌云构建似乎没有将环境变量与秘密映射。 这是我正在使用的 nuget.config 文件(当凭据被硬编码时它可以工作)。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <!-- make sure other nuget.config files don't add unexpected sources -->
        <clear />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="private" value="<private_nuget_url>" />
    </packageSources>
    <packageSourceCredentials>
        <private>
            <add key="Username" value="%NUGET_USER%" />
            <add key="ClearTextPassword" value="%DEPLOY_API_KEY%" />
        </private>
    </packageSourceCredentials>
</configuration>

Google Cloud Build 服务代理已启用 api 来访问密钥管理器:

【问题讨论】:

    标签: .net google-cloud-platform google-cloud-functions nuget google-cloud-build


    【解决方案1】:

    您在 Cloud Functions 部署命令中设置的密钥是在运行时设置的,而不是在构建时设置的。使用 Cloud Functions 无法实现您想做的事情。

    我建议您切换到 Cloud Run 以使用 Cloud Build 控制容器的构建并通过 Cloud Build - Secret Manager integration 加载密钥

    【讨论】:

      猜你喜欢
      • 2021-05-18
      • 2019-01-24
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2021-01-05
      • 2019-09-20
      • 2021-08-21
      • 1970-01-01
      相关资源
      最近更新 更多