تكوين بيانات اعتماد المستودع للتطبيق الخاص بك لاستخدامها في تنزيل صور الحاوية

يتم تكوين مصادقة تسجيل الحاوية عن طريق الإضافة RepositoryCredentialsContainerHostPolicies إلى قسم بيان التطبيق الخاص بك. أضف الحساب وكلمة المرور لتسجيل الحاوية (myregistry.azurecr.io في المثال المذكور أدناه)، مما يسمح للخدمة بتنزيل صورة الحاوية من المستودع.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code">
            <RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

يوصى بتشفير كلمة مرور المستودع باستخدام شهادة تشفير نُشرت على كافة عقد نظام المجموعة. عندما يقوم تصميم الخدمة بنشر حزمة الخدمة إلى نظام المجموعة، يتم استخدام شهادة التشفير لفك تشفير نص التشفير. يتعين استخدام Invoke-ServiceFabricEncryptText cmdlet لإنشاء نص التشفير لكلمة المرور، والذي تتم إضافته إلى ملف ApplicationManifest.xml. راجع الإدارة السرية للحصول على مزيد من المعلومات حول الشهادات ودلالات التشفير.

يتعين تكوين بيانات الاعتماد على مستوى المجموعة

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

يمكن تمكين هذه الميزة أو تعطيلها من خلال إضافة السمة إلى UseDefaultRepositoryCredentials في ApplicationManifest.xml ذات ContainerHostPolicies القيمة أو true القيمةfalse.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

ثم يستخدم تصميم الخدمة بيانات اعتماد المستودع الافتراضية التي يمكن تحديدها في ClusterManifest ضمن Hosting القسم. إذا UseDefaultRepositoryCredentials كان الأمر كذلك true، يقرأ تصميم الخدمة القيم التالية من ClusterManifest:

  • DefaultContainerRepositoryAccountName (string)
  • DefaultContainerRepositoryPassword (string)
  • IsDefaultContainerRepository كلمة مرورمشفرة (bool)
  • DefaultContainerRepositoryPasswordType (string)

فيما يلي مثال يوضح ما يمكن إضافته داخل القسم Hosting في الملف ClusterManifestTemplate.json. يمكن إضافة القسم Hosting في نظام المجموعة أو في وقت لاحق في ترقية التكوين. لمزيد من المعلومات، راجع تغيير إعدادات مجموعة تصميم الخدمة لـ Azure وإدارة أسرار تطبيق تصميم الخدمة لـ Azure

"fabricSettings": [
	...,
	{
        "name": "Hosting",
        "parameters": [
          {
            "name": "EndpointProviderEnabled",
            "value": "true"
          },
          {
            "name": "DefaultContainerRepositoryAccountName",
            "value": "someusername"
          },
          {
            "name": "DefaultContainerRepositoryPassword",
            "value": "somepassword"
          },
          {
            "name": "IsDefaultContainerRepositoryPasswordEncrypted",
            "value": "false"
          },
          {
            "name": "DefaultContainerRepositoryPasswordType",
            "value": "PlainText"
          }
        ]
      },
]

يتعين استخدام الرموز المميزة كبيانات اعتماد للتسجيل

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

  1. التأكد من تمكين الهوية المدارة المعينة للنظام للجهاز الظاهري.

    مدخل Microsoft Azure: إنشاء خيار هوية مجموعة مقياس الجهاز الظاهري

ملاحظة

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

  1. منح أذونات لمقياس الجهاز الظاهري المعين لسحب/قراءة الصور من السجل. من خلال شفرة التحكم في الوصول (IAM) الخاصة بسجل حاويات Azure في مدخل Microsoft Azure، أضف تعيين دور للجهاز الظاهري:

    إضافة كيان الجهاز الظاهري إلى ACR

  2. بعد ذلك، العمل على تعديل بيان التطبيق الخاص بك. في ContainerHostPolicies القسم، العمل على إضافة السمة ‘UseTokenAuthenticationCredentials=”true”.

      <ServiceManifestImport>
          <ServiceManifestRef ServiceManifestName="NodeServicePackage" ServiceManifestVersion="1.0"/>
      <Policies>
        <ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="process" UseTokenAuthenticationCredentials="true">
          <PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/>
        </ContainerHostPolicies>
        <ResourceGovernancePolicy CodePackageRef="NodeService.Code" MemoryInMB="256"/>
      </Policies>
      </ServiceManifestImport>
    

    ملاحظة

    العلامة UseDefaultRepositoryCredentials التي تم تعيينها إلى true بينما UseTokenAuthenticationCredentials هي true ستؤدي إلى حدوث خطأ أثناء النشر.

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