Можно ли получить предложение подписки Azure или offerId с помощью Powershell? Через портал это будет «Подписка» -> «Свойства» -> «Предложение» или «ID предложения»?
Я долго искал, но не вижу.
Спасибо,
Я безуспешно выполнял поиск в Интернете. Я попытался изучить подписки, контекст подписки, в модуле AzureRM.Billing были некоторые обещания, но ничего не вышло. Я изучил эквивалентный API для отдыха (биллинг), и здесь указан OfferID, но он больше привязан к ресурсу, чем к подписке. Это помогает?


Зависит от того, для чего он вам нужен. Нет смысла получать OfferTypes через скрипт PS, поскольку вы не будете создавать новую подписку таким образом. Процесс намного сложнее. Хотя, если вам просто нужен список, он доступен на сайте MS: https://azure.microsoft.com/en-us/support/legal/offer-details/
Итак, у меня более 60 подписок, и мы время от времени делаем M&A там, где подписка должна быть под MSDN или Enterprise. Я хочу иметь сценарий, который может вытащить предложение из существующих подписок, чтобы я знал, нужно ли мне переместить их в подходящую подписку.
К сожалению, я не думаю, что это возможно. Я думаю, что было бы разумно найти решение вашей проблемы.
И, возможно, вы могли бы добавить запрос на добавление этой функции в будущем: https://github.com/Azure/azure-docs-powershell/blob/master/azuresmps-4.0.0/AzureRM.Profile/Get-AzureRmSubscription.md
Существует неофициальная возможность получить идентификатор предложения, который используется самим порталом Azure. Я протестировал его со своей подпиской, и он сработал. Это может привести к проблемам с определенными идентификаторами предложений. Пожалуйста, поделитесь своим мнением по этому поводу.
Это обязательные шаги:
Получите токен аутентификации на предъявителя
Соберите вызов POST REST
{
"subscriptionId": "########-####-####-####-############"
}Результат выглядит так:
{
"accountInfo": {
"userRole": 6,
"billingSystemType": 2,
"isAccountAdmin": true,
"isTokenMatch": false,
"locale": "en-US",
"currency": "EUR",
"countryCode": "DE",
"accountAdminEmail": "****@****.com",
"commerceAccountId": "########-####-####-####-############",
"currencyMigrationInfo": null,
"displaySpecifiedRole": false
},
"essentials": {
"offerId": "MS-AZR-0063P",
"roles": {
"2": null,
"4": {
"isDirectCancel": true
},
"5": null
},
"freeMetersEndDate": null,
"provisioningStatus": 1,
"hasPendingTransfer": false
}
}Мне удалось вернуться к этому. К сожалению, мне не удалось заставить это работать. в любом случае спасибо за ваше время.
Если вы используете токен, назначенный вам при входе на портал Azure, он будет работать. Если у вас есть реальное приложение, использующее область management.core.windows.net/user_impersonation, вы получите несанкционированный доступ на конечной точке s2.billing.ext.azure.com, поскольку авторизован только идентификатор приложения портала Azure.
Теперь это можно сделать из портала с помощью проводника графика ресурсов с запросом, аналогичным следующему:
resourcecontainers
| where type == "microsoft.resources/subscriptions"
| project name, properties.subscriptionPolicies.quotaId
Человек, ты сделал мой день :)
Это QuotaId, который отличается от OfferId. Он уже был доступен через ARM Rest Api.
Нет, но уже есть запрос функции пожалуйста проголосуйте за это.
Есть официальный способ получить идентификатор предложения с помощью Azure REST API. Обязательно используйте версию API как api-version=2019-10-01
Конечная точка: ПОЛУЧИТЬ https://management.azure.com/{scope}/providers/Microsoft.Consump/usageDetails?api-version=2019-10-01.
Вы можете запустить \ попробовать попробовать, нажав ниже URL: https://docs.microsoft.com/en-us/rest/api/consuming/usagedetails/list#code-try-0
Конечно, вам нужно войти в систему с вашим идентификатором пользователя и паролем Azure, чтобы попробовать \ протестировать его.
Вы получите ответ, как показано ниже, с идентификатором предложения:
Дополнительные сведения см. В разделе «Сведения об использовании» - API списка: https://docs.microsoft.com/en-us/rest/api/consuming/usagedetails/list.
Примечание. Это не способ PowerShell, но вы можете вызвать REST Api с помощью PowerShell / curl. Ref. https://mauridb.medium.com/calling-azure-rest-api-via-curl-eb10a06127
Не могли бы вы включить такие подробности, как «Я искал модули X Y и Z» или «Мне не удалось идентифицировать веб-запрос в X / Y»?