我在 Azure DevOps 中有一个管道。在构建和测试之后,我创建了 Azure 资源以便在那里部署应用程序。
我为此使用了Azure 资源组部署任务。它有效,但在日志中我只看到这个(对于我创建的所有资源):
******************************************************************************
Starting: Create Azure Resources
******************************************************************************
==============================================================================
Task : Azure Resource Group Deployment
Description : Deploy an Azure resource manager (ARM) template to a resource group. You can also start, stop, delete, deallocate all Virtual Machines (VM) in a resource group
Version : 2.147.2
Author : Microsoft Corporation
Help : [More Information](https://aka.ms/argtaskreadme)
==============================================================================
Checking if the following resource group exists: awesomeApp42.
Resource group exists: true.
Creating deployment parameters.
The detected …Run Code Online (Sandbox Code Playgroud) azure azure-devops azure-rm-template azure-pipelines azure-template
例如,我有多个具有不同功能的项目
方案一
方案B
我有 1 个具有项目 A 功能的资源组 (R1)。如果我将项目 B 功能部署到资源组“R1”,则删除项目 A 功能并将其替换为项目 B 功能。
有没有办法将项目 A 和项目 B 的功能一起部署到同一个资源组 (R1)?
我正在开发一个软件,其中登录过程是使用 Microsoft Azure AD 和 Oauth2 完成的。在此过程中,随机数是可选的,成功登录后,我会收到一个有效期为一小时的令牌。
我无法理解随机数在这个过程中的作用,并且我没有使用它。我的身份验证是否因此而不太安全?在此过程中添加随机数有什么好处?
我正在尝试创建一个主密钥保管库,其中将包含所有证书以作为某个用户进行身份验证。
我有 2 个服务主体 => 一个用于我的应用程序,一个用于部署。这个想法是部署服务主体可以访问 Key Vault 并将位于那里的证书添加到 Web 应用程序的存储中。
我已经创建了服务主体,并已授予他对密钥保管库的所有权限。我还为该密钥保管库启用了 ARM 模板中的访问机密。
使用 powershell,我能够以部署 SP 身份登录并检索机密(证书)。
但是,这在部署引用密钥保管库的 ARM 模板时不起作用。我收到以下错误:
New-AzureRmResourceGroupDeployment : 11:16:44 - Resource Microsoft.Web/certificates 'test-certificate' failed with message '{
"Code": "BadRequest",
"Message": "The service does not have access to '/subscriptions/98f06e7e-1016-4088-843f-62690f3bb306/resourcegroups/rg-temp/providers/microsoft.keyvault/vaults/master-key-vault' Key
Vault. Please make sure that you have granted necessary permissions to the service to perform the request operation.",
"Target": null,
"Details": [
{
"Message": "The service does not have access to '/subscriptions/xxxx/resourcegroups/xxx/providers/microsoft.keyvault/vaults/master-key-vault' Key
Vault. Please make …Run Code Online (Sandbox Code Playgroud) azure azure-powershell azure-keyvault azure-rm-template azure-template
我知道您可以使用如下命令获取 azure Key Vault 中特定机密的纯文本:
$a = Get-AzureKeyVaultSecret -VaultName MyKeyVaultName -Name "SecretName"
$a.SecretValueText
Run Code Online (Sandbox Code Playgroud)
但是是否可以列出所有秘密和纯文本值?这仅显示秘密值的空白字符串:
Get-AzureKeyVaultSecret -VaultName MyKeyVaultName | Select-Object Name,SecretValueText
Run Code Online (Sandbox Code Playgroud) 有谁知道是否有办法在dependsOn元素中放置内联条件语句?我想设置一个条件,即如果nestedTemplateA 已经存在或者nestedTemplateB 已经存在,则资源将部署。
任何帮助表示赞赏!
"dependsOn": [
"[or(nestedTemplateA, nestedTemplateB)]"
],
Run Code Online (Sandbox Code Playgroud) 我正在运行以下脚本:
$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $rgName;
$diskEncryptionKeyVaultUrl = $keyVault.VaultUri;
$keyVaultResourceId = $keyVault.ResourceId;
$keyEncryptionKeyUrl = (Get-AzureKeyVaultKey -VaultName $keyVaultName -Name myKey).Key.kid;
Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgName `
-VMName "myVM" `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $keyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $keyVaultResourceId
Run Code Online (Sandbox Code Playgroud)
这将在1分钟左右的时间内返回以下内容:
Set-AzureRmVmDiskEncryptionExtension:长时间运行的操作失败,状态为“失败”。附加信息:'VM报告了处理扩展名'AzureDiskEncryption'时的故障。错误消息:“无法发送DiskEncryptionData,检查KeyVault输入,ResourceId和重新尝试加密操作”。错误代码:VMExtensionProvisioningError错误消息:VM在处理扩展名“ AzureDiskEncryption”时报告失败。错误消息:“无法发送DiskEncryptionData,检查KeyVault输入,ResourceIds并重试加密操作”。ErrorTarget:开始时间:3/2/19 2:10:59 PM结束时间:3/2/19 2:10:59 PM
我已经验证了所有值都正确地传递给set命令,并且没有传递任何null。
使用以下应用程序服务定义
data "azurerm_resource_group" "rg" {
name = var.resource_group_name
}
# Creates our new App Service
resource "azurerm_app_service" "app" {
name = var.app_name
app_service_plan_id = var.app_service_plan_id
location = data.azurerm_resource_group.rg.location
resource_group_name = data.azurerm_resource_group.rg.name
client_affinity_enabled = false
enabled = true
https_only = true
app_settings = var.app_settings
site_config {
always_on = true
http2_enabled = true
use_32_bit_worker_process = false
scm_type = "LocalGit"
default_documents = var.default_documents
cors {
allowed_origins = var.cors_allowed_origins
support_credentials = var.cors_enabled
}
}
identity {
type = "SystemAssigned"
}
Run Code Online (Sandbox Code Playgroud)
我正在像这样设置 keyvault 访问策略
resource …Run Code Online (Sandbox Code Playgroud) 我们可以从 Log Analytics Workspace 访问 Pod 相关日志,但没有应用程序日志(与我们在 中看到的类似kubectl get events)。
我指的是 Azure 文档,但我仍然无法从 Azure 门户访问应用程序 Pod 日志
这是一个很遥远的事情,谷歌上似乎没有任何接近的东西,但我想知道是否有可能阻止某些异常被记录到 App Insights 中?
我们的代码库中有很多地方针对用户操作引发了异常,但这些异常并不是我们想要在 App Insights 中显示的真正异常。
然而,改变发生这种情况的所有区域将需要很长时间,并且需要大量测试,因为我们需要确保逻辑流程不改变
目前我们引发了 LocationDomainException 类型的异常,我想如果我遇到不想记录异常的地方,我们可以更改为 LocationDomainUserError
我需要停止记录此异常或从其继承的任何异常
我使用 .NET Core 3.1。
我知道这有点反模式,但有人尝试过吗?
azure ×8
azure-devops ×2
appinsights ×1
azure-aks ×1
c# ×1
exception ×1
json ×1
oauth-2.0 ×1
powershell ×1
terraform ×1