gpt4 book ai didi

node.js - 用于项目和部署特定变量的 Azure DevOps 管道

转载 作者:行者123 更新时间:2023-12-03 05:30:19 25 4
gpt4 key购买 nike

我想就以下问题征求意见。我在 Azure DevOps 中有一个 javascript qna 机器人。我创建了一个部署到 Azure 环境的 Azure 管道。这效果很好。然而,这是一个通用机器人,可以在多种场景中使用。编写一次,多次使用。因此,我想对多个环境(DEV 与 PROD)和实例(PROD1、PROD2、PROD3...)的流程进行可变化

第一种情况:在项目中,有一个存储了名称/值对的 .env 文件。我需要为多个环境和实例提供不同的值。一种选择可能是每个环境+实例都有一个不同的文件。所以

.env.DEV、.env.PROD1、.env.PROD2、.env.PROD3 等

然后,作为压缩文件的构建过程的一部分,根据大小写删除后缀,仅重命名其中一个 .env 文件。可以在压缩之前删除其他 .env 文件。这是一个好方法吗?或者我应该使用更标准化的流程吗?

第二种情况:作为部署的一部分,我想对 azure-pipeline.yml 文件进行可变化,以便目标 Web 应用程序、资源组、订阅等是动态的(对于 DEV 来说不同) 、产品 1、产品 2、...)。我可以创建多个 yaml 文件并将其链接到单独的管道。是这样吗?或者我是否创建一个管道并以某种方式针对“n”种不同的情况切换这些值?

我可以破解一些东西。但我想确保在开始之前我使用了正确的方法。

提前致谢, jack 。

最佳答案

第一种情况:

Is this a good way to do it OR is there a more standardized process that I should use?

我建议你可以使用replace token task更方便地实现您的需求。这是我的示例:

1.*.env 文件:

name1:#{value1}#
name2:#{value2}#
name3:#{value3}#

2.运行管道时创建变量并设置值:

enter image description here

3.替换 token 任务:

- task: replacetokens@3
inputs:
targetFiles: '**/*.env'
encoding: 'auto'
writeBOM: true
actionOnMissing: 'warn'
keepToken: true
tokenPrefix: '#{'
tokenSuffix: '}#'
useLegacyPattern: false
enableTelemetry: false

4.*.env文件结果:

name1:a
name2:b
name3:c

第二种情况:

I can create multiple yaml files and link it to separate pipelines. Isthis the way? Or am I creating one pipeline and somehow toggling thesevalues for 'n' different cases?

我建议你可以使用parameters并在运行管道时选择值。例如:

parameters:
- name: subscription
type: string
default: test1
values:
- test1
- test2
- name: WebAppName
type: string
default: test1
values:
- test1
- test2
- name: ResourceGroupName
type: string
default: test1
values:
- test1
- test2

steps:

- task: AzureAppServiceManage@0
inputs:
azureSubscription: ${{ parameters.subscription }}
Action: 'Stop Azure App Service'
WebAppName: ${{ parameters.WebAppName }}
SpecifySlotOrASE: true
ResourceGroupName: ${{ parameters.ResourceGroupName }}

运行管道时您可以选择资源组名称和订阅名称: enter image description here

关于node.js - 用于项目和部署特定变量的 Azure DevOps 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65972616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com