Membuat langganan Azure secara terprogram untuk Perjanjian Pelanggan Microsoft dengan API terbaru
Artikel ini membantu Anda membuat langganan Azure secara terprogram untuk Perjanjian Pelanggan Microsoft menggunakan versi API terbaru. Jika Anda masih menggunakan versi pratinjau yang lebih lama, lihat Membuat langganan Azure secara terprogram dengan API warisan.
Dalam artikel ini, Anda mempelajari cara membuat langganan secara terprogram menggunakan Azure Resource Manager.
Jika Anda perlu membuat langganan Azure MCA di seluruh penyewa Microsoft Entra, lihat Membuat langganan MCA secara terprogram di seluruh penyewa Microsoft Entra.
Saat Anda membuat langganan Azure secara terprogram, langganan tersebut diatur oleh perjanjian, dan berdasarkan perjanjian tersebut Anda memperoleh layanan Azure dari Microsoft atau reseller resmi. Untuk informasi selengkapnya, lihat Informasi Hukum Microsoft Azure.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Anda tidak dapat membuat paket dukungan secara terprogram. Anda dapat membeli paket dukungan baru atau meningkatkannya di portal Azure. Navigasi ke Bantuan + dukungan lalu di bagian atas halaman, pilih Pilih paket dukungan yang tepat.
Prasyarat
Anda harus memiliki peran pemilik, kontributor, atau pembuat langganan Azure di bagian faktur, atau peran pemilik atau kontributor di profil tagihan, atau akun tagihan untuk membuat langganan. Anda juga dapat memberikan peran yang sama kepada nama prinsipal layanan(SPN). Untuk informasi selengkapnya tentang peran dan penetapan izin kepada mereka, lihat Peran dan tugas tagihan langganan.
Jika Anda menggunakan SPN untuk membuat langganan, gunakan ObjectId aplikasi Microsoft Entra Enterprise sebagai ID Utama menggunakan Microsoft Graph PowerShell atau Azure CLI.
Catatan
Izin berbeda antara API warisan (api-version=2018-03-01-preview) dan API terbaru (api-version=2020-05-01). Meskipun Anda mungkin memiliki peran yang cukup untuk menggunakan API warisan, Anda mungkin memerlukan admin EA untuk mendelegasikan Peran Anda untuk menggunakan API terbaru.
Jika tidak tahu apakah Anda memiliki akses ke akun Perjanjian Pelanggan Microsoft, lihat Memeriksa akses ke Perjanjian Pelanggan Microsoft.
Menemukan akun penagihan yang dapat Anda akses
Buat permintaan berikut untuk mencantumkan semua akun penagihan.
GET https://management.azure.com/providers/Microsoft.Billing/billingaccounts/?api-version=2020-05-01
Respons API mencantumkan akun penagihan yang dapat Anda akses.
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountStatus": "Active",
"accountType": "Enterprise",
"agreementType": "MicrosoftCustomerAgreement",
"billingProfiles": {
"hasMoreResults": false
},
"displayName": "Contoso",
"hasReadAccess": false
},
"type": "Microsoft.Billing/billingAccounts"
}
]
}
Gunakan properti displayName
untuk mengidentifikasi akun penagihan yang ingin Anda buat langganannya. Pastikan, agreementType akun adalah MicrosoftCustomerAgreement. Salin name
akun tersebut. Misalnya, untuk membuat langganan untuk akun penagihan Contoso
, salin 5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx
. Tempelkan nilai di suatu tempat sehingga Anda dapat menggunakannya di langkah berikutnya.
Menemukan profil tagihan & bagian faktur untuk membuat langganan
Biaya untuk langganan Anda muncul di bagian faktur profil tagihan. Gunakan API berikut untuk mendapatkan daftar profil tagihan dan bagian faktur tempat Anda memiliki izin untuk membuat langganan Azure.
Pertama, Anda akan mendapatkan daftar profil tagihan di akun tagihan yang dapat Anda akses (Gunakan name
yang Anda dapatkan dari langkah sebelumnya)
GET https://management.azure.com/providers/Microsoft.Billing/billingaccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingprofiles/?api-version=2020-05-01
Respons API mencantumkan semua profil tagihan yang aksesnya Anda miliki untuk membuat langganan:
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx",
"name": "AW4F-xxxx-xxx-xxx",
"properties": {
"billingRelationshipType": "Direct",
"billTo": {
"addressLine1": "One Microsoft Way",
"city": "Redmond",
"companyName": "Contoso",
"country": "US",
"email": "kenny@contoso.com",
"phoneNumber": "425xxxxxxx",
"postalCode": "98052",
"region": "WA"
},
"currency": "USD",
"displayName": "Contoso Billing Profile",
"enabledAzurePlans": [
{
"skuId": "0002",
"skuDescription": "Microsoft Azure Plan for DevTest"
},
{
"skuId": "0001",
"skuDescription": "Microsoft Azure Plan"
}
],
"hasReadAccess": true,
"invoiceDay": 5,
"invoiceEmailOptIn": false,
"invoiceSections": {
"hasMoreResults": false
},
"poNumber": "001",
"spendingLimit": "Off",
"status": "Active",
"systemId": "AW4F-xxxx-xxx-xxx",
"targetClouds": []
},
"type": "Microsoft.Billing/billingAccounts/billingProfiles"
}
]
}
Salin id
untuk selanjutnya mengidentifikasi bagian faktur di bawah profil tagihan. Misalnya, salin /providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx
dan panggil API berikut.
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoicesections?api-version=2020-05-01
Respons
{
"totalCount": 1,
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx",
"name": "SH3V-xxxx-xxx-xxx",
"properties": {
"displayName": "Development",
"state": "Active",
"systemId": "SH3V-xxxx-xxx-xxx"
},
"type": "Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"
}
]
}
Gunakan properti id
untuk mengidentifikasi bagian faktur yang ingin Anda buat langganannya. Salin seluruh untai (karakter). Contohnya,/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx
.
Membuat langganan untuk bagian faktur
Contoh berikut membuat langganan bernama Dev Team subscription untuk bagian faktur Pengembangan. Langganan ditagihkan ke profil tagihan Profil Tagihan Contoso dan muncul di bagian Pengembangan di fakturnya. Anda menggunakan cakupan tagihan yang disalin dari langkah sebelumnya: /providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx
.
PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/{{guid}}?api-version=2021-10-01
Isi permintaan
{
"properties":
{
"billingScope": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx",
"DisplayName": "Dev Team subscription",
"Workload": "Production"
}
}
Respons
{
"id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
"name": "sampleAlias",
"type": "Microsoft.Subscription/aliases",
"properties": {
"subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
"provisioningState": "Accepted"
}
}
Anda dapat melakukan GET di URL yang sama untuk mendapatkan status permintaan.
Permintaan
GET https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2021-10-01
Respons
{
"id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
"name": "sampleAlias",
"type": "Microsoft.Subscription/aliases",
"properties": {
"subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
"provisioningState": "Succeeded"
}
}
Status sedang berlangsung dikembalikan sebagai status Accepted
di provisioningState
.
Menggunakan templat ARM atau Bicep
Bagian sebelumnya menunjukkan cara membuat langganan dengan PowerShell, CLI, atau REST API. Jika Anda perlu mengotomatiskan pembuatan langganan, pertimbangkan untuk menggunakan templat Azure Resource Manager (templat ARM) atau file Bicep.
Templat berikut membuat langganan. Untuk billingScope
, berikan ID bagian faktur. Langganan dibuat di grup manajemen root. Setelah membuat langganan, Anda dapat memindahkannya ke grup manajemen lain.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionAliasName": {
"type": "string",
"metadata": {
"description": "Provide a name for the alias. This name will also be the display name of the subscription."
}
},
"billingScope": {
"type": "string",
"metadata": {
"description": "Provide the full resource ID of billing scope to use for subscription creation."
}
}
},
"resources": [
{
"scope": "/",
"name": "[parameters('subscriptionAliasName')]",
"type": "Microsoft.Subscription/aliases",
"apiVersion": "2021-10-01",
"properties": {
"workLoad": "Production",
"displayName": "[parameters('subscriptionAliasName')]",
"billingScope": "[parameters('billingScope')]"
}
}
],
"outputs": {}
}
Atau, gunakan file Bicep untuk membuat langganan.
targetScope = 'managementGroup'
@description('Provide a name for the alias. This name will also be the display name of the subscription.')
param subscriptionAliasName string
@description('Provide the full resource ID of billing scope to use for subscription creation.')
param billingScope string
resource subscriptionAlias 'Microsoft.Subscription/aliases@2021-10-01' = {
scope: tenant()
name: subscriptionAliasName
properties: {
workload: 'Production'
displayName: subscriptionAliasName
billingScope: billingScope
}
}
Sebarkan templat di tingkat grup manajemen. Contoh berikut menunjukkan penyebaran templat JSON ARM, tetapi Anda dapat menyebarkan file Bicep sebagai gantinya.
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/mg1/providers/Microsoft.Resources/deployments/exampledeployment?api-version=2020-06-01
Dengan isi permintaan:
{
"location": "eastus",
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json"
},
"parameters": {
"subscriptionAliasName": {
"value": "sampleAlias"
},
"billingScope": {
"value": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx"
}
},
"mode": "Incremental"
}
}
Untuk memindahkan langganan ke grup manajemen baru, gunakan templat ARM berikut.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"targetMgId": {
"type": "string",
"metadata": {
"description": "Provide the ID of the management group that you want to move the subscription to."
}
},
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Provide the ID of the existing subscription to move."
}
}
},
"resources": [
{
"scope": "/",
"type": "Microsoft.Management/managementGroups/subscriptions",
"apiVersion": "2020-05-01",
"name": "[concat(parameters('targetMgId'), '/', parameters('subscriptionId'))]",
"properties": {
}
}
],
"outputs": {}
}
Atau, file Bicep berikut.
targetScope = 'managementGroup'
@description('Provide the ID of the management group that you want to move the subscription to.')
param targetMgId string
@description('Provide the ID of the existing subscription to move.')
param subscriptionId string
resource subToMG 'Microsoft.Management/managementGroups/subscriptions@2020-05-01' = {
scope: tenant()
name: '${targetMgId}/${subscriptionId}'
}
Langkah berikutnya
- Setelah membuat langganan, Anda dapat memberikan kemampuan tersebut kepada pengguna lain dan perwakilan layanan. Informasi selengkapnya, lihat Memberikan akses untuk membuat langganan Azure Enterprise (pratinjau).
- Untuk mengetahui informasi selengkapnya tentang mengelola langganan dalam jumlah besar menggunakan grup manajemen, lihat Mengelola sumber daya Anda dengan grup manajemen Azure.
- Untuk mengubah grup manajemen untuk langganan, lihat Memindahkan langganan.
- Untuk skenario pembuatan langganan tingkat lanjut menggunakan REST API, lihat Alias - Buat.