إنشاء اشتراكات Azure لاتفاقية شركاء Microsoft برمجياً مع أحدث واجهات برمجة التطبيقات
تساعدك هذه المقالة في إنشاء اشتراكات Azure برمجياً لاتفاقية شركاء Microsoft باستخدام أحدث إصدارات واجهة برمجة التطبيقات. إذا كنت لا تزال تستخدم إصدار المعاينة الأقدم، فراجع إنشاء اشتراكات Azure برمجياً باستخدام واجهات برمجة التطبيقات القديمة.
في هذه المقالة، ستتعرف على كيفية إنشاء اشتراكات برمجياً باستخدام مدير موارد Azure.
عند إنشاء اشتراك Azure برمجياً، يخضع هذا الاشتراك للاتفاقية التي حصلت بموجبها على خدمات Azure من Microsoft أو من بائع معتمد. لمزيد من المعلومات، راجع معلومات Microsoft Azure القانونية .
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
لا يمكنك إنشاء خطط الدعم برمجيا. يمكنك شراء خطة دعم جديدة أو ترقية خطة في مدخل Microsoft Azure. انتقل إلى Help + support ثم في أعلى الصفحة، حدد Choose the right support plan.
المتطلبات الأساسية
يجب أن يكون لديك دور مسؤول عالمي أو عامل إداري في حساب Cloud Solution Provider الخاص بمؤسستك لإنشاء اشتراك لحساب الفوترة الخاص بك. لمزيد من المعلومات، راجع مركز الشركاء - تعيين أدوار المستخدمين وأذوناتهم .
إذا كنت لا تعرف ما إذا كان لديك حق الوصول إلى حساب اتفاقية شركاء Microsoft أم لا، فراجع التحقق من الوصول إلى اتفاقية شركاء Microsoft.
تستخدم الأمثلة التالية واجهات برمجة تطبيقات REST. حالياً، PowerShell و Azure CLI غير مدعومين.
ابحث عن حسابات الفواتير التي يمكنك الوصول إليها
قم بإجراء الطلب التالي لسرد جميع حسابات الفوترة التي يمكنك الوصول إليها.
GET https://management.azure.com/providers/Microsoft.Billing/billingaccounts/?api-version=2020-05-01
تسرد استجابة واجهة برمجة التطبيقات حسابات الفوترة.
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountStatus": "Active",
"accountType": "Partner",
"agreementType": "MicrosoftPartnerAgreement",
"billingProfiles": {
"hasMoreResults": false
},
"displayName": "Contoso",
"hasReadAccess": true
},
"type": "Microsoft.Billing/billingAccounts"
}
]
}
استخدم الخاصية displayName
لتحديد حساب الفوترة الذي تريد إنشاء اشتراكات له. تأكد من أن نوع اتفاقية الحساب هو اتفاقية شركاء Microsoft . انسخ name
للحساب. على سبيل المثال، لإنشاء اشتراك في Contoso
حساب الفواتير، انسخ 99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx
. الصق القيمة في مكان ما بحيث يمكنك استخدامها في الخطوة التالية.
ابحث عن العملاء الذين لديهم خطط Azure
قم بإجراء الطلب التالي، مع نسخ name
من الخطوة الأولى ( 99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx
) لسرد جميع العملاء في حساب الفوترة الذين يمكنك إنشاء اشتراكات Azure لهم.
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers?api-version=2020-05-01
تسرد استجابة واجهة برمجة التطبيقات العملاء في حساب الفوترة مع خطط Azure. يمكنك إنشاء اشتراكات لهؤلاء العملاء.
{
"totalCount": 2,
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/7d15644f-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "7d15644f-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"properties": {
"billingProfileDisplayName": "Fabrikam toys Billing Profile",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/YL4M-xxxx-xxx-xxx",
"displayName": "Fabrikam toys"
},
"type": "Microsoft.Billing/billingAccounts/customers"
},
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/acba85c9-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "acba85c9-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"properties": {
"billingProfileDisplayName": "Contoso toys Billing Profile",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/YL4M-xxxx-xxx-xxx",
"displayName": "Contoso toys"
},
"type": "Microsoft.Billing/billingAccounts/customers"
}
]
}
استخدم الخاصية displayName
لتحديد العميل الذي تريد إنشاء اشتراكات له. انسخ id
للعميل. على سبيل المثال، لإنشاء اشتراك لـ Fabrikam toys
، انسخ /providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/7d15644f-xxxx-xxxx-xxxx-xxxxxxxxxxxx
. الصق القيمة في مكان ما لاستخدامها في خطوات لاحقة.
الحصول على البائعين للعميل
هذا المقطع اختياري لمقدمي الخدمات غير المباشرة فقط.
إذا كنت موفراً غير مباشر في نموذج CSP ثنائي المستوى، فيمكنك تحديد مورِّد أثناء إنشاء اشتراكات للعملاء.
قم بإجراء الطلب التالي، مع نسخ id
من الخطوة الثانية ( /providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx
) لسرد جميع البائعين المتوفرين للعميل.
GET "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx?$expand=resellers&api-version=2020-05-01"
تسرد استجابة واجهة برمجة التطبيقات البائعين للعميل:
{
"value": [{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2ed2c490-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "2ed2c490-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Microsoft.Billing/billingAccounts/customers",
"properties": {
"billingProfileDisplayName": "Fabrikam toys Billing Profile",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/YL4M-xxxx-xxx-xxx",
"displayName": "Fabrikam toys",
"resellers": [
{
"resellerId": "3xxxxx",
"description": "Wingtip"
}
]
}
}]
}
استخدم الخاصية description
لتحديد البائع المقترن بالاشتراك. انسخ resellerId
الخاص بالمورِّد. على سبيل المثال، لربط Wingtip
، انسخ 3xxxxx
. الصق القيمة في مكان ما بحيث يمكنك استخدامها في الخطوة التالية.
إنشاء اشتراك للعميل
ينشئ المثال التالي اشتراكاً باسم اشتراك Dev Team لـ Fabrikam toys ومورد Wingtip للاشتراك. يمكنك استخدام نطاق الفوترة المنسوخ من الخطوة السابقة: /providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2021-10-01
نص الطلب
{
"properties":
{
"billingScope": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"DisplayName": "Dev Team subscription",
"Workload": "Production"
}
}
الرد
{
"id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
"name": "sampleAlias",
"type": "Microsoft.Subscription/aliases",
"properties": {
"subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
"provisioningState": "Accepted"
}
}
يمكنك القيام بـ GET على نفس عنوان URL للحصول على حالة الطلب.
Request
GET https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2021-10-01
استجابة
{
"id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
"name": "sampleAlias",
"type": "Microsoft.Subscription/aliases",
"properties": {
"subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
"provisioningState": "Succeeded"
}
}
يتم إرجاع حالة قيد التقدم كحالة Accepted
ضمن provisioningState
.
تمرير معرف البائع الاختياري المنسوخ من الخطوة الثانية في نص الطلب لواجهة برمجة التطبيقات.
استخدم قالب ARM أو العضلة ذات الرأسين
أظهر القسم السابق كيفية إنشاء اشتراك باستخدام PowerShell أو CLI أو واجهة برمجة تطبيقات REST. إذا كنت بحاجة إلى أتمتة إنشاء الاشتراكات، ففكر في استخدام قالب Azure Resource Manager (قالب ARM) أو ملف Bicep.
ينشئ نموذج ARM التالي اشتراكاً. بالنسبة إلى billingScope
، وفّر معرف العميل. تم إنشاء الاشتراك في مجموعة إدارة الجذر. بعد إنشاء الاشتراك، يمكنك نقله إلى مجموعة إدارة أخرى.
{
"$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": {}
}
أو استخدم ملف Bicep لإنشاء الاشتراك.
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
}
}
انشر القالب على مستوى مجموعة الإدارة. تظهر الأمثلة التالية نشر قالب ARM JSON ولكن يمكنك نشر ملف Bicep بدلاً من ذلك.
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/mg1/providers/Microsoft.Resources/deployments/exampledeployment?api-version=2020-06-01
مع نص الطلب:
{
"location": "eastus",
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json"
},
"parameters": {
"subscriptionAliasName": {
"value": "sampleAlias"
},
"billingScope": {
"value": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
},
"mode": "Incremental"
}
}
لنقل اشتراك إلى مجموعة إدارة جديدة، استخدم نموذج مدير موارد Azure التالي.
{
"$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": {}
}
أو ملف Bicep التالي.
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}'
}
الخطوات التالية
- الآن بعد أن أنشأت اشتراكاً، يمكنك منح هذه القدرة للمستخدمين الآخرين ومديري الخدمة. لمزيد من المعلومات، راجع منح الوصول لإنشاء اشتراكات Azure Enterprise (معاينة).
- لمزيد من المعلومات حول إدارة أعداد كبيرة من الاشتراكات باستخدام مجموعات الإدارة، راجع تنظيم مواردك باستخدام مجموعات إدارة Azure.
- للحصول على سيناريوهات إنشاء اشتراك متقدمة باستخدام واجهة برمجة تطبيقات REST، راجع الاسم المستعار - إنشاء.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ