在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模板保存密钥值中的机密吗?
是否可以使用 AZ CLI 获取 Azure 服务总线primaryConnectionString?
输入参数:
我知道这是一个很受欢迎的问题。我已经尝试了类似线程中建议的所有内容。我正在尝试远程连接到 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 连接?
我不知道还应该做什么。
我正在尝试在我的 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 …
我正在尝试从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模块。为什么不包括在内?
我的一个资源组已被误删除。我无法在azure门户中找到任何选项来还原它。是否有任何选项可用于还原已删除的资源组?
azure azure-virtual-machine azure-virtual-network azure-resource-group
当我使用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
我想使用 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 看到)。
那么,如何从命令行停止部署槽中的应用程序?
我正在通过 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 做到这一点吗?
我需要获取访问令牌以使用 REST API访问 Azure(https://management.azure.com端点)中的资源。读过的每篇文章,都在用 Appliction Id 计算。就我而言,Azure 租户刚刚(以编程方式)创建,我必须在其中创建一些资源。
我唯一拥有的是租户 ID、订阅 ID、管理员帐户的用户名和密码。如何仅使用我拥有的信息进行身份验证?它如何在 PowerShell 中工作,不需要使用应用程序 ID?
azure ×10
azure-cli ×2
azure-cli2 ×2
powershell ×2
terraform ×2
azureportal ×1
postgresql ×1
rest ×1
tcp ×1