تمرين - إنشاء تطبيق IoT Central وإعداد الرمز المميز لواجهة برمجة التطبيقات

مكتمل

أنشئ تطبيق IoT Central لتتصل أجهزتك به وتُدار من خلاله.

تريد إنشاء تطبيق IoT Central لاختبار التكامل مع تطبيق إدارة أسطولك.

في هذه الوحدة، ستستخدم عملية خطة عنصر التحكم لـ Azure CLI لإنشاء تطبيق IoT Central من قالب تطبيق مخصص. ثم ستستخدم واجهة برمجة تطبيقات IoT Central REST لعمليات خطة البيانات التي تعمل على تطبيقك.

لإجراء استدعاءات واجهة برمجة تطبيقات REST، تستخدم هذه الوحدة الأمر az rest في بيئة اختبار معزولة بحيث لا تحتاج إلى تثبيت أي أدوات على جهازك المحلي. لكل أمر يمكنك مشاهدة URL للطلب والأسلوب (get أو put أو patch أو delete)، وأي نص JSON. تستخدم بعض الأوامر الوسيطة --query لتنسيق الاستجابة من أجل قابلية القراءة. إذا كنت تفضل ذلك، يمكنك استخدام الأداة المستندة إلى واجهة المستخدم الرسومية مثل Postman لإجراء استدعاءات API.

تضم واجهة برمجة تطبيقات IoT Central REST حاليًا بعض العمليات المتوفرة بشكل عام (GA) والبعض الآخر في المعاينة. إذا كان الطلب يتضمن سلسلة الاستعلام api-version=1.0، فهي عملية متوفرة بشكل عام. إذا كان الطلب يتضمن سلسلة الاستعلام api-version=preview، فإن العملية في المعاينة.

إنشاء تطبيق IoT Central وتكوينه

تنشئ الخطوات التالية تطبيق IoT Central وتُعد الرمز المميز لواجهة برمجة التطبيقات لاستخدامه لاحقاً في هذه الوحدة النمطية.

  1. شغّل الأوامر التالية في Cloud Shell لإنشاء اسم فريد لتطبيق IoT Central الخاص بك وحفظه في متغير بيئة لاستخدامه لاحقاً:

    APP_NAME="fleet-manager-$RANDOM"
    echo "Your application name is: $APP_NAME"
    

    دوّن اسم التطبيق في حالة انتهاء مهلة shell وفقدان متغير البيئة.

  2. شغّل الأمر التالي في Cloud Shell لإنشاء تطبيق IoT Central في بيئة الاختبار المعزولة:

    az iot central app create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name $APP_NAME --sku ST2 --location centralus \
      --subdomain $APP_NAME --template iotc-pnp-preview \
      --display-name 'Fleet management'
    

    توقع أن يستغرق تشغيل هذا الأمر دقيقة أو دقيقتين.

  3. يمكنك تشغيل الأمر التالي لمشاهدة قائمة تطبيقات IoT Central في اشتراكك:

    az iot central app list -o table \
    --query "[].{DisplayName:displayName, Subdomain:subdomain}"
    
  4. يمكنك تشغيل الأمر التالي لتسجيل الدخول إلى اشتراكك. لا يتم تشغيل هذا الأمر باستمرار في Cloud Shell، ولكن هنا من الضروري إنشاء رمز مميز لحامل لتطبيق IoT Central لديك. اتبع هذه الإرشادات لإكمال عملية تسجيل الدخول:

    TENANT=`az account show --query homeTenantId -o tsv`
    az login --tenant $TENANT
    
  5. يمكنك تشغيل الأوامر التالية للحصول على معرفات أدوار مسؤول التطبيق ومشغل التطبيق المضمنة من تطبيقك. لم يكن لديك رمز واجهة برمجة تطبيقات مميز لاستخدامه، لذلك يتم من خلال المعلمة --resource https://apps.azureiotcentral.com إنشاء رأس تخويل مع رمز مميز للحامل:

    # Get the admin and operator roles in the application
    ADMIN_ROLE_ID=`az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/roles \
    --url-parameters api-version=1.0 \
    --resource https://apps.azureiotcentral.com \
    --query "value[?displayName=='Administrator'].id" -o tsv`
    echo $ADMIN_ROLE_ID
    
    OPERATOR_ROLE_ID=`az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/roles \
    --url-parameters api-version=1.0 \
    --resource https://apps.azureiotcentral.com \
    --query "value[?displayName=='Operator'].id" -o tsv`
    echo $OPERATOR_ROLE_ID
    
  6. أنشئ رمز API مميزًا لدور مسؤول التطبيق. لا تزال بحاجة إلى استخدام الرمز المميز للحامل لهذا:

    ADMIN_TOKEN=`az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/apiTokens/admintoken \
      --url-parameters api-version=1.0 \
      --resource https://apps.azureiotcentral.com --query "token" -o tsv --body \
    '{
      "roles": [
        {
          "role": "'$ADMIN_ROLE_ID'"
        }
      ]
    }'`
    echo $ADMIN_TOKEN
    
  7. الآن يمكنك استخدام رمز API المميز للمسؤول لإنشاء رمز API مميز لعامل التشغيل:

    OPERATOR_TOKEN=`az rest -m put -u https://$APP_NAME.azureiotcentral.com/api/apiTokens/operatortoken \
      --url-parameters api-version=1.0 \
      --headers Authorization="$ADMIN_TOKEN" --query "token" -o tsv --body \
    '{
      "roles": [
        {
          "role": "'$OPERATOR_ROLE_ID'"
        }
      ]
    }'`
    echo $OPERATOR_TOKEN
    
  8. انسخ رموز API المميزة للمسؤول وعامل التشغيل التي تم إنشاؤها واحفظها محليًا في ملف نصي. إذا فقدت الرموز المميزة، سيكون عليك حذفها ثم إعادة إنشائها. ستستخدم كل الأوامر المتبقية في هذه الوحدة ADMIN_TOKEN أو OPERATOR_TOKEN.

يمتلك رمزا API المميزان الذان أنشأتهما مجموعة أذونات مقترنة بدورهما. يمكنك أيضا استخدام واجهة برمجة التطبيقاتREST لإنشاء رموز API المميزة لأي أدوار مخصصة أنشأتها في تطبيق IoT Central. يوضح الأمران التاليان أن المسؤول لديه حق الوصول إلى رموز API المميزة، ولكن عامل التشغيل ليس لديه هذا الحق:

  1. ينجح الأمر التالي لأن دور مسؤول التطبيق يتيح لك العمل مع رموز API المميزة:

    az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/apiTokens \
      --url-parameters api-version=1.0 \
      --headers Authorization="$ADMIN_TOKEN"
    
  2. يفشل الأمر التالي لأن دور عامل تشغيل التطبيقات لا يتيح لك العمل مع رموز API المميزة:

    az rest -m get -u https://$APP_NAME.azureiotcentral.com/api/apiTokens \
      --url-parameters api-version=1.0 \
      --headers Authorization="$OPERATOR_TOKEN"