المعلمات وأنواع البيانات في environment.yaml

تعريفات بيئة ADE هي بنية أساسية كتعليق برمجي (IaC)، مكتوبة في Bicep أو Terraform، مخزنة في المستودعات. يمكن تعديل تعريفات البيئة وتكييفها لمتطلباتك المحددة ثم استخدامها لإنشاء بيئة توزيع على Azure. يحدد مخطط environment.yaml أنواع موارد Azure المضمنة في تعريفات البيئة ويصفها.

ما هي environment.yaml؟

يعمل ملف environment.yaml كبيان، يصف الموارد المستخدمة وموقع القالب لتعريف البيئة.

نموذج environment.yaml

البرنامج النصي التالي هو مثال عام ل environment.yaml مطلوب لتعريف البيئة الخاصة بك.

name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json

التعريفات

يصف الجدول التالي الخصائص التي يمكنك استخدامها في environment.yaml.

الخاصية النوع الوصف مطلوب الأمثلة
الاسم سلسلة اسم العرض لعنصر الكتالوج. ‏‏نعم‬
الإصدار سلسلة إصدار عنصر الكتالوج. 1.0.0
الملخص. سلسلة سلسلة موجزة قصيرة حول عنصر الكتالوج.
الوصف سلسلة وصف لعنصر الكتالوج.
عداء سلسلة صورة الحاوية لاستخدامها عند تنفيذ الإجراءات. قالب
ARM Terraform
مسار القالب سلسلة المسار النسبي لملف قالب الإدخال. ‏‏نعم‬
main.tf main.bicep
azuredeploy.json
المعلمات صفيف معلمات الإدخال لاستخدامها عند إنشاء البيئة وتنفيذ الإجراءات. #/definitions/Parameter

المعلمات في environment.yaml

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

نموذج environment.yaml مع معلمات

البرنامج النصي التالي هو مثال على ملف environment.yaml يتضمن معلمتين؛ location و name:

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

تعريفات المعلمات

يصف الجدول التالي أنواع البيانات التي يمكنك استخدامها في environment.yaml. تختلف أسماء أنواع البيانات المستخدمة في ملف بيان environment.yaml عن تلك المستخدمة في قوالب ARM.

يمكن لكل معلمة استخدام أي من الخصائص التالية:

الخصائص النوع الوصف مزيد من الإعدادات
المعرف سلسلة معرف فريد للمعلمة.
الاسم سلسلة عرض اسم المعلمة.
الوصف سلسلة وصف المعلمة.
افتراضي سلسلة كائن
رقم
عدد صحيح
منطقي
للصفيف
القيمة الافتراضية للمعلمة.
النوع سلسلة كائن
رقم
عدد صحيح
منطقي
للصفيف
نوع بيانات المعلمة. يجب أن يتطابق نوع البيانات هذا مع نوع بيانات المعلمة في قالب ARM أو ملف BICEP أو ملف Terraform مع اسم المعلمة المقابل. النوع الافتراضي: سلسلة
readOnly boolean ما إذا كانت هذه المعلمة للقراءة فقط أم لا.
مطلوب boolean ما إذا كانت هذه المعلمة مطلوبة أم لا.
يسمح صفيف صفيف من القيم المسموح بها. "items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true,

مخطط YAML

هناك مخطط محدد لملفات Azure Deployment Environments environment.yaml، والذي يمكن أن يجعل تحرير هذه الملفات أسهل قليلا. يمكنك إضافة تعريف المخطط إلى بداية ملف environment.yaml الخاص بك:

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json

فيما يلي مثال لتعريف البيئة الذي يستخدم المخطط:

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json
name: FunctionApp
version: 1.0.0
summary: Azure Function App Environment
description: Deploys an Azure Function App, Storage Account, and Application Insights
runner: ARM
templatePath: azuredeploy.json

parameters:
  - id: name
    name: Name
    description: 'Name of the Function App.'
    type: string
    required: true

  - id: supportsHttpsTrafficOnly
    name: 'Supports Https Traffic Only'
    description: 'Allows https traffic only to Storage Account and Functions App if set to true.'
    type: boolean

  - id: runtime
    name: Runtime
    description: 'The language worker runtime to load in the function app.'
    type: string
    allowed:
      - 'dotnet'
      - 'dotnet-isolated'
      - 'java'
      - 'node'
      - 'powershell'
      - 'python'
    default: 'dotnet-isolated'