小编Shu*_*bao的帖子

在现有密钥库中创建KeyVault机密

在ARM模板中,我想在预先存在的KeyVault中写一个秘密-我尚未将其创建为当前模板的一部分。

我正在使用此代码

 {
        "dependsOn": [
            "/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.KeyVault/vaults/keyvaulttest"
        ],
        "type": "Microsoft.KeyVault/vaults/secrets",
        "name": "keyvaulttest/test",
        "apiVersion": "2015-06-01",
        "tags": {
            "displayName": "secret"
        },
        "properties": {
            "value": "value1"
        }
    }
Run Code Online (Sandbox Code Playgroud)

部署此时,我得到以下异常(取决于dependsOn项目)

部署模板验证失败:模板中未定义资源'Microsoft.KeyVault / vaults / keyvaulttest'。请参阅https://aka.ms/arm-template了解用法详细信息。(代码:InvalidTemplate)

我也尝试过用此方法替换dependsOn中的值(动态获取资源ID),但是我遇到了相同的异常

[resourceId('<resourceGroup>','Microsoft.KeyVault/vaults','keyvaulttest')]
Run Code Online (Sandbox Code Playgroud)

我可以使用其他任何方式从ARM模板保存密钥值中的机密吗?

azure azure-resource-manager azure-rm-template

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

使用 az cli 检索服务总线primaryConnectionString

是否可以使用 AZ CLI 获取 Azure 服务总线primaryConnectionString?

输入参数:

  1. 资源组
  2. 服务总线名称

azure azureservicebus azure-cli azure-cli2

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

psql: 无法连接到服务器...服务器是否在主机上运行...并接受端口 5432 上的 TCP/IP 连接?

我知道这是一个很受欢迎的问题。我已经尝试了类似线程中建议的所有内容。我正在尝试远程连接到 azure windows server 2012 计算机上的 postgresql 数据库。我已经尝试过以下...

postgresql.conf

listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)

pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5
Run Code Online (Sandbox Code Playgroud)

防火墙

新入站规则(防火墙)协议和端口 > 协议类型 > TCP

本地端口 > 5432 远程端口 > 全部

获取远程机器的IP

我从天蓝色仪表板复制,也如远程桌面连接顶部所示

在此输入图像描述

来自本地计算机的 CMD

然后从本地机器尝试以下操作。

psql -U postgres -h 13.xx.xx.xx 
Run Code Online (Sandbox Code Playgroud)

错误信息。

psql: 无法连接到服务器: 连接超时 (0x0000274C/10060) 服务器是否在主机“13.xx.xx.xx”上运行并接受端口 5432 上的 TCP/IP 连接?

我不知道还应该做什么。

postgresql tcp azure azure-virtual-machine

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

使用 azurerm_virtual_machine_extension 时,PowerShell 脚本不执行

我正在尝试在我的 terraform 执行中使用以下内容:

resource "azurerm_virtual_machine_extension" "vmex" {
    name = "myVM"
    location = "eastus"
    resource_group_name   = "${azurerm_resource_group.rg.name}"
    virtual_machine_name = "${azurerm_virtual_machine.vm.name}"
    publisher = "Microsoft.Compute"
    type = "CustomScriptExtension"
    type_handler_version = "1.9"
    settings = <<SETTINGS
    {
        "fileUris": [
            "https://example.com/scripts/test.ps1"
        ],
        "commandToExecute": "powershell -ExecutionPolicy Unrestricted -File 'test.ps1'"
    }
    SETTINGS
}
Run Code Online (Sandbox Code Playgroud)

当执行时,我得到以下输出:

错误:应用计划时出错:

发生 1 个错误:

  • azurerm_virtual_machine_extension.vmex:发生 1 个错误:

  • azurerm_virtual_machine_extension.vmex:长时间运行的操作终止,状态为“失败”:代码 =“VMExtensionProvisioningError”消息 =“VM 在处理扩展“myVM”时报告失败。错误消息:\“已完成执行命令\”。”

Terraform 不会在出现错误时自动回滚。相反,您的 Terraform 状态文件已使用成功完成的所有资源进行了部分更新。请解决上述错误并再次应用以逐步更改您的基础架构。

当我通过 RDP 进入虚拟机时,我可以看到该文件已正确下载到预期的位置,但是,该文件似乎commandToExecute从未执行过。

如果我直接从下载文件夹运行脚本,它就会成功完成。

任何人都可以提供有关如何解决此问题的任何建议吗?

注意:我尝试了尝试引用该文件的各种组合,但所有这些组合似乎都有相同的结果。

更新:按照评论中的建议检查日志后,尝试运行此代码片段时出现的错误是:

"message": "处理 -File ''test.ps1'' 失败,因为该文件没有 '.ps1' 扩展名。请指定有效的 Windows …

azure terraform terraform-provider-azure

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

Get-AzureRmResourceGroup:术语“ Get-AzureRmResourceGroup”未被识别为cmdlet的名称

我正在尝试从PowerShell中的Azure订阅中检索资源组名称:

Get-AzureRmResourceGroup | select resourcegroupname
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Get-AzureRmResourceGroup : The term 'Get-AzureRmResourceGroup' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling 
of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-AzureRmResourceGroup | select resourcegroupname
+ ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-AzureRmResourceGroup:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

我安装了PowerShell 5.0,并导入了最新的Azure模块。为什么不包括在内?

powershell azure azure-powershell

4
推荐指数
2
解决办法
6393
查看次数

如何还原已删除的Azure资源组

我的一个资源组已被误删除。我无法在azure门户中找到任何选项来还原它。是否有任何选项可用于还原已删除的资源组?

azure azure-virtual-machine azure-virtual-network azure-resource-group

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

有没有办法在Microsoft Azure存储资源管理器或Azure门户中查看托管磁盘的blob?

当我使用Azure资源管理器使用非托管磁盘创建VM时,我可以在名为"vhds"的子容器中的指定存储帐户的Blob容器下的Microsft Azure Storage Explorer和/或Azure门户中查看其.vhd .

当我使用带有托管磁盘的Azure资源管理器创建VM时,我找不到任何与此托管磁盘相关的存储容器.

据我所知,根据这个Microsoft文档,Azure正在为我"管理"这个存储,而且我可以为这个磁盘生成一个"SAS Url"(它没有给我关于blob存储位置的真实信息),但我相信(让我知道,如果我错了),Azure必须将我的"托管磁盘"存储在我的订阅中的存储帐户中,并且我应该能够在Microsoft Azure存储中的某处看到这些"托管磁盘"的blob资源管理器或Azure门户.

有没有一种简单的方法可以在门户网站或Microsoft Azure存储资源管理器中查看这些托管磁盘.vhds?

azure azure-virtual-machine azure-resource-manager azureportal azure-managed-disk

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

如何使用 azure CLI 在插槽中停止功能应用程序

我想使用 Azure CLI 发出一个命令,该命令仅在特定部署槽中停止函数应用程序。

Azure CLI 2.0 文档Azure CLI 2.0 文档列出了命令:

az functionapp stop --name
                    --resource-group
Run Code Online (Sandbox Code Playgroud)

但是我不清楚如何停止不是“主”应用程序,而是特定部署槽中的应用程序。

在我的情况下,插槽称为 dev,应用程序称为 myapp。我试过了:

az functionapp stop --name=dev --resource-group=myresourcegroup
The Resource 'Microsoft.Web/sites/dev' under resource group myresourcegroup' was not found.

az functionapp stop --name=myapp/dev --resource-group=myresourcegroup
az functionapp stop --name='myapp/dev' --resource-group=myresourcegroup
Operation failed with status: 'Not Found'. Details: 404 Client Error: Not Found for url: https://management.azure.com/subscriptions/long-guid/resourceGroups/myresourcegroup/providers/Microsoft.Web/sites/myapp%2Fdev/start?api-version=2016-08-01
Run Code Online (Sandbox Code Playgroud)

我可以停止主应用程序没问题。当我发出停止主应用程序的命令时,部署槽中的应用程序不会停止(我可以通过检查门户 GUI 看到)。

那么,如何从命令行停止部署槽中的应用程序?

azure azure-cli azure-functions azure-cli2

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

通过 terraform 为应用服务创建自定义域

我正在通过 terraform 创建 azure 应用程序服务,并遵循此站点上的文档:https : //www.terraform.io/docs/providers/azurerm/r/app_service.html

这是 terraform 脚本的片段:

resource "azurerm_app_service" "app" {
  name                = "app-name"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  app_service_plan_id = "ommitted"

  site_config {
    java_version           = "1.8"
    java_container         = "TOMCAT"
    java_container_version = "8.5"
  }
  }
Run Code Online (Sandbox Code Playgroud)

我的应用服务也需要子域,但我无法在 terraform 中找到任何帮助:

截至目前,应用服务的网址为:https : //abc.azure-custom-domain.cloud

我希望我的网址是:https://*.abc.azure-custom-domain.cloud

我知道这可以通过门户完成,但他们有什么方法可以通过 terraform 做到这一点吗?

azure terraform azure-app-service-envrmnt azure-rm-template

4
推荐指数
3
解决办法
2688
查看次数

如何使用用户名和密码(无应用 ID)对 Azure REST API 进行身份验证

我需要获取访问令牌以使用 REST API访问 Azure(https://management.azure.com端点)中的资源。读过的每篇文章,都在用 Appliction Id 计算。就我而言,Azure 租户刚刚(以编程方式)创建,我必须在其中创建一些资源。

我唯一拥有的是租户 ID、订阅 ID、管理员帐户的用户名和密码。如何仅使用我拥有的信息进行身份验证?它如何在 PowerShell 中工作,不需要使用应用程序 ID?

authentication rest powershell azure

4
推荐指数
2
解决办法
5756
查看次数