У меня есть подписка на Azure, и я пытаюсь написать сценарий PowerShell для автоматического получения списка всех ресурсов (виртуальных машин, учетных записей хранения, баз данных и т. Д.), Которые в настоящее время есть в моей подписке. Есть ли способ сделать это с помощью REST API управления Azure или командлетов Azure?
Получите список всех ресурсов в моей подписке Azure (желательно Powershell)
Ответы (7)
Если вы используете новую модель Resource Manager (представленную в 2014 г.), вы можете использовать следующий сценарий PowerShell.
Login-AzureRmAccount
Get-AzureRmResource | Export-Csv "c:\Azure Resources.csv"
Для использования команд PowerShell Resource Manager вам понадобится модуль AzureRM PowerShell (https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps).
Install-Module AzureRM
Дополнительные сведения о различиях между моделями Resource Manager и Classic см. В документе https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-deployment-model.
Для пользователей с несколькими подписками: если вы хотите вывести содержимое нескольких подписок, вам нужно будет вызвать Select-AzureRmSubscription, чтобы переключиться на другую подписку, прежде чем вызывать Get-AzureRmResource.
Я не думаю, что есть только одна функция (или командлет PS) для получения всей этой информации. Однако каждый из них может быть получен как через Windows Azure Service Management REST API
, так и через Window Azure PowerShell Cmdlets
.
REST API управления службами Windows Azure: http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx. Например, если вы хотите перечислить учетные записи хранения в своей подписке, вы должны использовать это: http://msdn.microsoft.com/en-us/library/windowsazure/ee460787.aspx
Командлеты Windows Azure PowerShell: http://msdn.microsoft.com/en-us/library/jj554330.aspx. Опять же, если вы хотите перечислить учетные записи хранения в своей подписке, вы должны использовать это: http://msdn.microsoft.com/en-us/library/dn205168.aspx.
Что ж, вы можете обновить версию своей AzurePowershell и выполнить эту команду.
Get-AzureResource
В выводе вы можете проверить "ResourceType". В нем есть информация о типе ресурса, созданного на лазурном сервере.
Добавление к ответу @Gaurav (и связанному с вашим комментарием о перечислении базы данных SQL): вы можете перечислить все свои базы данных для каждого сервера за несколько простых шагов.
Сначала перечислите все серверы базы данных SQL в вашей подписке:
Затем для каждого сервера создайте контекст подключения и перечислите базы данных. Обратите внимание, что с помощью командлета Get-Credentials мне было предложено ввести имя пользователя + пароль во всплывающем окне, которое я здесь не показываю. В демонстрационных целях я создал совершенно новый сервер только с основной базой данных, чтобы показать, как выглядит результат:
В этом примере показано, как автоматически получить список всех ресурсов (виртуальных машин, учетных записей хранения, баз данных, служб приложений) и состояния через Powershell с помощью проверки подлинности сертификата.
https://gallery.technet.microsoft.com/Access-Azure-resource-data-ca9cc9f7
Я знаю, что на него уже ответили, но я нашел команду Get-AzResource простой в использовании и извлекает все ресурсы из определенной подписки. Попробуйте использовать его с ft для чистого текста.
Get-AzResource | футов
Поскольку вы сказали, что PowerShell предпочтительно, я предполагаю, что другие варианты все еще могут быть полезны? Вы можете перейти на http://portal.azure.com и щелкнуть значок меню (три горизонтальные линии ), затем Все ресурсы. Затем вверху страницы вы можете нажать «Экспорт в CSV» и открыть его в Excel.
На небольшую очистку в Excel нужно потратить 30 секунд, но для того, что я пытаюсь сделать прямо сейчас, это определенно было лучшее и самое быстрое решение. Надеюсь, это пригодится и вам (или кому-то еще).