我正在使用 Azure DevOps 构建管道将工件发送到发布管道。我的构建管道如下:
NodeTool@0PublishCodeCoverageResults@1PublishPipelineArtifact@1和targetPath: '$(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
我有一个 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 环境中可能存在的任何配置设置都有更好的静态数据机制?我可以安全地忽略这个警告吗?