小编kir*_*tha的帖子

PublishPipelineArtifact .artifact 忽略无法识别

我正在使用 Azure DevOps 构建管道将工件发送到发布管道。我的构建管道如下:

  1. 安装 Node JS NodeTool@0
  2. 运行运行 npm install 然后运行测试套件的脚本命令。
  3. 通过发布代码覆盖率结果 PublishCodeCoverageResults@1
  4. 使用PublishPipelineArtifact@1targetPath: '$(Pipeline.Workspace)'作为工件目录发布工件。

当我最初在没有使用代码覆盖率部分的情况下这样做时,IE没有安装节点,发送的文件为 257,略高于 25MB。完全可行且快速。

但是,当我安装 node 并运行代码覆盖率时,文件会爆炸到 750MB,这是可以理解的 - 但恕我直言,作为工件传输太多了。

因此,查看我发现的解决方案:https : //docs.microsoft.com/en-us/azure/devops/artifacts/reference/artifactignore?view=azure-devops

而且,我将其添加到回购的根目录中。

例子

但是,这个文件似乎根本没有使用PublishPipelineArtifact@1。无论我做什么,工作区中的所有文件都被用作工件。

但是,有效的是在构建过程中物理删除文件。

我意识到这是一个问题的很多细节,但我想知道 .artifactignore 文件是否真的适用于这个构建管道?

有没有办法可以正确使用工件忽略文件,而不必担心在创建工件之前删除文件?

尝试更改PublishPipelineArtifact@1任务中的目标目录。

这是当前工作的 YAML:

# Node.js with Angular
# Build a Node.js project that uses Angular.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- master

pool:
  vmImage: …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines azure-pipelines-release-pipeline azure-artifacts

5
推荐指数
2
解决办法
2676
查看次数

未配置 XML 加密器 - 使用 Key Vault 时

我有一个 netcoreapp2.2 容器化应用程序,它使用 azure key Vault 来存储密钥,还使用:

app.UseAuthentication(); 
Run Code Online (Sandbox Code Playgroud)

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
Run Code Online (Sandbox Code Playgroud)

我正在应用服务下的托管 Linux 环境中构建/运行 docker 映像。我正在使用 azure 容器注册表和开发操作管道来维护我的应用程序。Azure 控制部署过程和“docker run”命令。

我的应用程序运行良好,但是在容器日志中我看到:

2019-12-13T17:18:12.207394900Z [40m[1m[33mwarn[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
2019-12-13T17:18:12.207436700Z       No XML encryptor configured. Key {...} may be persisted to storage in unencrypted form.
...
2019-12-13T17:18:14.540484659Z Application started. Press Ctrl+C to shut down.
Run Code Online (Sandbox Code Playgroud)

我意识到有很多其他帖子都提到使用其他存储机制,但是我正在使用密钥保管库来存储我的敏感数据。JWT 全部由 Key Vault 处理。我有一些控制 DEV/QA/PROD 静态变量的应用程序设置,但它们根本不是敏感数据。

我也不确定内存中存储了什么密钥,因为我所有的敏感密钥都完全在应用程序之外,并由以下方式调用:

var azureServiceTokenProvider = new AzureServiceTokenProvider();
                var keyVaultClient = new KeyVaultClient(
                    new KeyVaultClient.AuthenticationCallback(
                        azureServiceTokenProvider.KeyVaultTokenCallback));

                config.AddAzureKeyVault(
                    $"https://{builtConfig["MY_KEY_VAULT_ID"]}.vault.azure.net/",
                    keyVaultClient,
                    new DefaultKeyVaultSecretManager());
Run Code Online (Sandbox Code Playgroud)

我很难理解为什么会抛出此警告,以及我是否应该采取其他措施来缓解该问题。我个人没有看到副作用,并且应用程序重新启动似乎没有任何影响,因为我使用的是不记名令牌,并且令牌过期、密码重置等其他问题不适用。

所以我剩下的问题是我可以采取任何其他步骤来避免此警告吗?我是否需要确保对于 Linux 环境中可能存在的任何配置设置都有更好的静态数据机制?我可以安全地忽略这个警告吗?

linux data-protection azure docker azure-keyvault

5
推荐指数
1
解决办法
1万
查看次数