小编Win*_*oss的帖子

使用 Azure 负载均衡器持续交付

我们在负载均衡器后面有两个虚拟机。我们希望在进行新部署时使其中一台虚拟机无法公开访问,以便我们可以在应用程序的新版本公开访问之前对其进行测试。当前计划是通过负载均衡器的服务标签更改网络安全组规则来阻止两个虚拟机中的一个: 在此输入图像描述

有用。当我们将 VM1 的 NSG 规则从“允许”更改为“拒绝”时,只有 VM2 保持可公开访问。一旦我们验证新版本按预期工作,我们就会切换 VM2 的 NSG 规则并切换 VM1 的 NSG 规则,因此当我们更新其他虚拟机上的应用程序时,只能访问具有最新版本应用程序的虚拟机。

问题是 NSG 规则不会立即生效,可能需要 1-3 分钟才能使虚拟机无法访问/可访问。此外,如果我们同时为两个虚拟机切换 NSG,我们可能会遇到这样的情况:两个具有不同版本软件的虚拟机都是公开可用的,这可能会导致数据损坏或数据丢失,或者两个虚拟机都无法访问。因此,解决此问题的唯一方法是更改​​ VM2 的 NSG 规则,然后更改 VM1 的 NSG 规则,并让停机时间为 2-6 分钟。有更好的方法吗?

azure-load-balancer

7
推荐指数
1
解决办法
191
查看次数

Azure RM模板.如何使用VS自动上传资源,而不是从GitHub中获取资产

我希望能够部署一个复杂的ARM模板,该模板利用我的本地Visual Studio中的DSC扩展和嵌套模板.该示例设置为从GitHub下载资产:https: //github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-ha-2-dc 我需要做哪些更改我可以将资产绑定到我的本地Visual Studio项目并使用它们而不是从GitHub下载它们?以下是负责下载的模板的精简版:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    ...
    "adPDCVMName": {
      "type": "string",
      "metadata": {
        "description": "The computer name of the PDC"
      },
      "defaultValue": "adPDC"
    },
    "assetLocation": {
      "type": "string",
      "metadata": {
        "description": "The location of resources such as templates and DSC modules that the script is dependent"
      },
      "defaultValue": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/active-directory-new-domain-ha-2-dc"
    }
    ...
  },
  "variables": {
    ...
    "adPDCModulesURL": "[concat(parameters('assetLocation'),'/DSC/CreateADPDC.ps1.zip')]",
    "adPDCConfigurationFunction": "CreateADPDC.ps1\\CreateADPDC",
    ...
  },
  "resources": [
    ...
    {
      "name": "[parameters('adPDCVMName')]",
      "type": "Microsoft.Compute/virtualMachines",
      ...
      "resources": [ …
Run Code Online (Sandbox Code Playgroud)

json azure dsc azure-resource-manager

6
推荐指数
1
解决办法
264
查看次数

自动生成密钥库机密

我们需要创建 Key Vault 并用机密填充(或生成)它,然后在下一个构建步骤中将它们作为 SQL 服务器 (PaaS) 的密码引用。最好的方法是什么?

azure-resource-manager azure-keyvault azure-devops azure-pipelines-build-task azure-pipelines

6
推荐指数
1
解决办法
5393
查看次数

PowerShell 7. ForEach-Object -Parallel 不会针对 Azure PowerShell 进行身份验证

我们编写了一个脚本来并行执行 Azure PowerShell 命令。问题是当我们增加-ThrottleLimit大于 1 时,某些命令没有正确执行。脚本是:

# Writing IPs for whitelisting into file.
Add-Content -Path IPs.txt -Value ((Get-AzWebApp -ResourceGroupName "ResourceGroup1" -Name "WebApp1").OutboundIpAddresses).Split(",")
Add-Content -Path IPs.txt -Value ((Get-AzWebApp -ResourceGroupName "ResourceGroup1" -Name "WebApp1").PossibleOutboundIpAddresses).Split(",")
# Writing new file with inique IPs.
Get-Content IPs.txt | Sort-Object -Unique | Set-Content UniqueIPs.txt

# Referencing the file.
$IPsForWhitelisting = Get-Content UniqueIPs.txt

# Assigning priotiry number to each IP
$Count = 100
$List = foreach ($IP in $IPsForWhitelisting) { 
  $IP|Select @{l='IP';e={$_}},@{l='Count';e={$Count}}
  $Count++
}
# Whitelisting all …
Run Code Online (Sandbox Code Playgroud)

azure-powershell powershell-7.0

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

将 SQL 数据库部署到与 SQL Server 不同的资源组中

我想知道是否可以将 SQL 数据库部署到与 SQL Server 不同的资源组中?一个资源组中可以有多个 SQL 服务器。但是是否可以在不同的资源组中拥有SQL Server和相应的数据库呢?

azure azure-rm-template

4
推荐指数
1
解决办法
2793
查看次数

Azure 开发运营。获取有关特定管道故障的不一致通知

我们有一些管道正在按计划进行备份。如果特定管道出现故障,我们希望收到 Discord 上的通知。

有一种方法可以接收电子邮件通知,也可以使用官方应用程序将 Slack 集成到 Azure DevOps 中

但对于 Discord 有没有一个好的方法呢?

azure-devops azure-pipelines

4
推荐指数
1
解决办法
2152
查看次数

VSTS. Reference concatenated variables

I was wondering if it possible to reference concatenated variable name1 and name2 as part of build process? Suppose I'd like to create a resource group called winning-development. Where name1=winning-, and name2=development. 在此处输入图片说明

在此处输入图片说明

azure-devops azure-pipelines-build-task azure-pipelines

3
推荐指数
1
解决办法
1695
查看次数

Azure RM模板.如何将变量值引用到资源

我希望能够将可变数量的特定字符串传递给资源.例如,我有一个主机名列表和一个参数"主机名数",当更改数字时,资源中的值也会发生变化. 在此输入图像描述

我怎样才能做到这一点?我不能使用take-array函数,因为数组有"name":"value"方案,我只需要传递"values".

azure azure-resource-manager

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

Azure 删除已取消(禁用)订阅

我已取消 Azure 订阅,但如何删除它?我确定我们不会使用这个,它是空的,而且我们有更多的订阅可以使用。

azure azure-resource-manager

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

Azure DevOps 不会从 ZIP Deploy 发布 Web 应用程序,而是将其作为只读 ZIP 包运行

我们有一个 Azure DevOps Pipeline,它以 ZIP 包https://learn.microsoft.com/en-us/azure/app-service/deploy-run-package的形式运行我们的应用程序 ,而不是 ZIP Deploy。因此,我们无法通过 SFTP 进入我们的 Web 应用程序并进行更改。为什么 Pipeline 将我们的应用程序作为 ZIP 包运行,我们如何更改它?这是管道:

trigger: none

pool:
  vmImage: 'windows-latest'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: 'Solution1.sln'

- task: VSBuild@1
  inputs:
    solution: '$(agent.builddirectory)\s\Folder\Project.csproj'
    msbuildArgs: '/p:OutputPath="$(build.binariesDirectory)\Folder\bin" /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:publishUrl="$(build.artifactStagingDirectory)\ProjectTempFolder"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(build.artifactStagingDirectory)\ProjectTempFolder'
    Contents: |
      **
    TargetFolder: '$(build.ArtifactStagingDirectory)\ProjectArtifacts'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(build.ArtifactStagingDirectory)\ProjectArtifacts'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(build.ArtifactStagingDirectory)\Project.zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  inputs: …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-app-service azure-devops

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

电源外壳。将逗号分隔的值转换为单独的对象

我在 Azure DevOps Pipeline 中有一个 PowerShell 脚本,它输出 Web 应用程序可以使用的可能 IP 地址列表:

$deploymentOutputs=(ConvertFrom-Json '$(deploymentOutputs)')
$possibleOutboundIpAddresses=$($deploymentOutputs.possibleOutboundIpAddresses.value)
Write-Host $possibleOutboundIpAddresses
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

23.89.272.2,52.165.130.123,40.222.30.223
Run Code Online (Sandbox Code Playgroud)

如何将 PowerShell 脚本转换为不输出逗号分隔值,而是将这些值输出为 Each-Object?

23.89.272.2
52.165.130.123
40.222.30.223
Run Code Online (Sandbox Code Playgroud)

理想情况下,我也希望能够在值之前添加自定义文本:

IP1 - 23.89.272.2
IP2 - 52.165.130.123
IP3 - 40.222.30.223
Run Code Online (Sandbox Code Playgroud)

编辑: 上面的例子是我想要做的事情的过度简化。我真正需要做的是为该输出中的每个条目创建 Azure DevOps 变量。我实际上需要根据 IP 数量和 IP 值执行此 PowerShell 命令:

Write-Host "##vso[task.setvariable variable=$IP1;]23.89.272.2"
Write-Host "##vso[task.setvariable variable=$IP2;]52.165.130.123"
Write-Host "##vso[task.setvariable variable=$IP3;]40.222.30.223"
Run Code Online (Sandbox Code Playgroud)

powershell azure-devops

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