مشاركة عبر


استخدام الملحقات مع مجموعات Batch

الملحقات هي تطبيقات صغيرة تسهم في تسهيل التكوين اللاحق للتوفير، والإعداد على عقد حساب Batch. يمكنك اختيار أي من الامتدادات المسموح بها وتثبيتها على عقد الحوسبة عند تجهيزها. بعد ذلك، يمكن للملحق تنفيذ العملية المنشودة منه.

يمكنك التحقق من الحالة المباشرة للملحقات التي تستخدمها واسترداد المعلومات التي ترجعها لمتابعة أي قدرات للكشف أو التصحيح أو التشخيص.

المتطلبات الأساسية

تلميح

لا يمكن إضافة الامتدادات إلى مجموعة موجودة. يجب إعادة إنشاء التجمعات لإضافة الملحقات أو إزالتها أو تحديثها.

الملحقات المدعومة

يمكن تثبيت الملحقات التالية حالياً عند إنشاء مجموعة Batch:

يمكنك طلب الدعم للناشرين الآخرين و/أو أنواع الملحقات عن طريق فتح طلب دعم.

إنشاء تجمع مع ملحقات

ينشئ المثال التالي مجموعة دفعات من عقد Linux/Windows التي تستخدم ملحق Azure Key Vault.

REST API URI

 PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01

نص الطلب لعقدة Linux

{
  "name": "test1",
  "type": "Microsoft.Batch/batchAccounts/pools",
  "properties": {
    "vmSize": "STANDARD_D2S_V5",
    "taskSchedulingPolicy": {
      "nodeFillType": "Pack"
    },
    "deploymentConfiguration": {
      "virtualMachineConfiguration": {
        "imageReference": {
          "publisher": "Canonical",
          "offer": "ubuntu-24_04-lts",
          "sku": "server",
          "version": "latest"
        },
        "nodeAgentSkuId": "batch.node.ubuntu 24.04",
        "extensions": [
          {
            "name": "secretext",
            "type": "KeyVaultForLinux",
            "publisher": "Microsoft.Azure.KeyVault",
            "typeHandlerVersion": "3.0",
            "autoUpgradeMinorVersion": true,
            "settings": {
              "secretsManagementSettings": {
                "pollingIntervalInS": "300",
                "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault",
                "requireInitialSync": true,
                "observedCertificates": [
                  "https://testkvwestus2.vault.azure.net/secrets/authsecreat"
                ]
              },
              "authenticationSettings": {
                "msiEndpoint": "http://169.254.169.254/metadata/identity",
                "msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
              }
            },
            "protectedSettings": {}
          }
        ]
      }
    },
    "scaleSettings": {
      "fixedScale": {
        "targetDedicatedNodes": 1,
        "targetLowPriorityNodes": 0,
        "resizeTimeout": "PT15M"
      }
    }
  },
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
    }
  }
}

طلب النص الأساسي لعقدة Windows

{
    "name": "test1",
    "type": "Microsoft.Batch/batchAccounts/pools",
    "properties": {
        "vmSize": "STANDARD_D4S_V5",
        "taskSchedulingPolicy": {
            "nodeFillType": "Pack"
        },
        "deploymentConfiguration": {
            "virtualMachineConfiguration": {
                "imageReference": {
                    "publisher": "microsoftwindowsserver",
                    "offer": "windowsserver",
                    "sku": "2025-datacenter",
                    "version": "latest"
                },
                "nodeAgentSkuId": "batch.node.windows amd64",
                "extensions": [
                    {
                        "name": "secretext",
                        "type": "KeyVaultForWindows",
                        "publisher": "Microsoft.Azure.KeyVault",
                        "typeHandlerVersion": "3.0",
                        "autoUpgradeMinorVersion": true,
                        "settings": {
                            "secretsManagementSettings": {
                                "pollingIntervalInS": "300",
                                "requireInitialSync": true,
                                "observedCertificates": [
                                    {
                                        "https://testkvwestus2.vault.azure.net/secrets/authsecreat"
                                        "certificateStoreLocation": "LocalMachine",
                                        "keyExportable": true
                                    }
                                ]
                            },
                            "authenticationSettings": {
                                "msiEndpoint": "http://169.254.169.254/metadata/identity",
                                "msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
                            }
                        },
                        "protectedSettings":{}
                    }
                ]
            }
        },
        "scaleSettings": {
            "fixedScale": {
                "targetDedicatedNodes": 1,
                "targetLowPriorityNodes": 0,
                "resizeTimeout": "PT15M"
            }
        }
    },
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
        }
    }
}

الحصول على بيانات الملحق من مجموعة

يسترد المثال التالي البيانات من ملحق Azure Key Vault.

REST API URI

 GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01

هيئة الاستجابة

{
  "odata.metadata": "https://testwestus2batch.westus2.batch.azure.com/$metadata#extensions/@Element",
  "instanceView": {
    "name": "secretext",
    "statuses": [
      {
        "code": "ProvisioningState/succeeded",
        "level": 0,
        "displayStatus": "Provisioning succeeded",
        "message": "Successfully started Key Vault extension service. 2021-02-08T19:49:39Z"
      }
    ]
  },
  "vmExtension": {
    "name": "KVExtensions",
    "publisher": "Microsoft.Azure.KeyVault",
    "type": "KeyVaultForLinux",
    "typeHandlerVersion": "1.0",
    "autoUpgradeMinorVersion": true,
    "settings": "{\r\n  \"secretsManagementSettings\": {\r\n    \"pollingIntervalInS\": \"300\",\r\n    \"certificateStoreLocation\": \"/var/lib/waagent/Microsoft.Azure.KeyVault\",\r\n    \"requireInitialSync\": true,\r\n    \"observedCertificates\": [\r\n      \"https://testkvwestus2.vault.azure.net/secrets/testumi\"\r\n    ]\r\n  },\r\n  \"authenticationSettings\": {\r\n    \"msiEndpoint\": \"http://169.254.169.254/metadata/identity\",\r\n    \"msiClientId\": \"885b1a3d-f13c-4030-afcf-922f05044d78dc\"\r\n  }\r\n}"
  }
}

استكشاف أخطاء ملحق Key Vault وإصلاحها

إذا تم تكوين ملحق Key Vault بشكل غير صحيح، فقد تكون عقدة الحساب في حالة قابلة للاستخدام. لحل مشكلة فشل تمديد Key Vault، يمكنك التعيين requireInitialSync مؤقتا إلى false وإعادة نشر مجموعتك. بمجرد أن تصبح عقدة الحوسبة في حالة الخمول، يمكنك تسجيل الدخول إلى عقدة الحوسبة للتحقق من سجلات امتداد KeyVault بحثا عن أخطاء وإصلاح مشاكل التكوين. قم بزيارة روابط مستندات ملحق Key Vault التالية لمزيد من المعلومات.

اعتبارات تمديد صحة التطبيق

وكيل العقدة الدفعية الذي يعمل على العقدة يبدأ دائما خادم HTTP يعيد حالة صحة الوكيل. يستمع خادم HTTP هذا إلى عنوان IP المحلي 127.0.0.1 والمنفذ 29879. دائما ما يعود إلى حالة 200 لكن الجسم المستجيب إما صحي أو غير صحي. أي رد آخر (أو عدمه) يعتبر حالة "مجهولة". هذا الإعداد يتماشى مع الإرشادات التي تشغل خادم HTTP يوفر "حالة صحة غنية" وفقا للتوثيق الرسمي "إضافة صحة التطبيق".

إذا قمت بإعداد خادم الصحة الخاص بك، تأكد من أن خادم HTTP يستمع عبر منفذ فريد. يجب على خادم الصحة الخاص بك استعلام خادم وكيل العقدة الدفعية ودمجه مع إشارة الصحة لتوليد نتيجة صحة مركبة. وإلا قد ينتهي بك الأمر بعقدة "صحية" لا تملك وكيل دفعة يعمل بشكل صحيح.

الخطوات التالية