DevOps-Methoden für LUISDevOps practices for LUIS

Softwareentwickler, die eine Language Understanding-App (LUIS) entwickeln, können DevOps-Verfahren für Quellcodeverwaltung, automatisierte Builds, Tests und Releaseverwaltung anwenden, indem sie diese Richtlinien befolgen.Software engineers who are developing a Language Understanding (LUIS) app can apply DevOps practices around source control, automated builds, testing, and release management by following these guidelines.

Quellcodeverwaltungs- und Branchstrategien für LUISSource control and branch strategies for LUIS

Einer der wichtigsten Faktoren für den Erfolg von DevOps ist die Quellcodeverwaltung.One of the key factors that the success of DevOps depends upon is source control. Ein Quellcodeverwaltungssystem ermöglicht Entwicklern die Zusammenarbeit an Code und das Nachverfolgen von Änderungen.A source control system allows developers to collaborate on code and to track changes. Durch die Verwendung von Branches können Entwickler zwischen verschiedenen Versionen der Codebasis wechseln und unabhängig von anderen Mitgliedern des Teams arbeiten.The use of branches allows developers to switch between different versions of the code base, and to work independently from other members of the team. Wenn Entwickler einen Pull Request (PR) auslösen, um Updates aus einem Branch für andere Branches vorzuschlagen, oder wenn Änderungen zusammengeführt werden, können diese Vorgänge automatisierte Builds auslösen, um Code zu erstellen und fortlaufend zu testen.When developers raise a pull request (PR) to propose updates from one branch to another, or when changes are merged, these can be the trigger for automated builds to build and continuously test code.

Mithilfe der in diesem Dokument beschriebenen Konzepte und Anleitungen können Sie eine LUIS-App entwickeln, gleichzeitig Änderungen in einem Quellcodeverwaltungssystem nachverfolgen und dabei die folgenden bewährten Methoden für die Softwareentwicklung befolgen:By using the concepts and guidance that are described in this document, you can develop a LUIS app while tracking changes in a source control system, and follow these software engineering best practices:

  • QuellcodeverwaltungSource Control

    • Der Quellcode für Ihre LUIS-App liegt in einem für Menschen lesbaren Format vor.Source code for your LUIS app is in a human-readable format.
    • Das Modell kann auf wiederholbare Weise aus der Quelle erstellt werden.The model can be built from source in a repeatable fashion.
    • Der Quellcode kann mit einem Quellcoderepository verwaltet werden.The source code can be managed by a source code repository.
    • Anmeldeinformationen und Geheimnisse (z. B. Erstellungs- und Abonnementschlüssel) werden niemals im Quellcode gespeichert.Credentials and secrets such as authoring and subscription keys are never stored in source code.
  • Branchen und ZusammenführenBranching and Merging

    • Entwickler können in unabhängigen Branches arbeiten.Developers can work from independent branches.
    • Sie können gleichzeitig in mehreren Branches arbeiten.Developers can work in multiple branches concurrently.
    • Es ist möglich, Änderungen an einer LUIS-App von einem Branch in einen anderen zu integrieren, indem Sie ein Rebase oder Merge ausführen.It's possible to integrate changes to a LUIS app from one branch into another through rebase or merge.
    • Entwickler können einen PR mit dem übergeordneten Branch zusammenführen.Developers can merge a PR to the parent branch.
  • VersionsverwaltungVersioning

    • Jede Komponente in einer großen Anwendung sollte unabhängig versioniert werden, sodass Entwickler Breaking Changes oder Updates erkennen können, indem sie sich einfach die Versionsnummer ansehen.Each component in a large application should be versioned independently, allowing developers to detect breaking changes or updates just by looking at the version number.
  • Code ReviewsCode Reviews

    • Die Änderungen im PR werden als für Menschen lesbarer Quellcode dargestellt, der vor der Annahme des PR geprüft werden kann.The changes in the PR are presented as human readable source code that can be reviewed before accepting the PR.

QuellcodeverwaltungSource control

Um die App-Schemadefinition einer LUIS-App in einem Quellcodeverwaltungssystem zu verwalten, verwenden Sie die Darstellung der App im LUDown-Format (.lu).To maintain the App schema definition of a LUIS app in a source code management system, use the LUDown format (.lu) representation of the app. Das .lu-Format ist dem .json-Format vorzuziehen, da es für Menschen lesbar ist, sodass das Erstellen und Überprüfen von Änderungen in PRs vereinfacht wird..lu format is preferred to .json format because it's human readable, which makes it easier to make and review changes in PRs.

Speichern einer LUIS-App im LUDown-FormatSave a LUIS app using the LUDown format

So speichern Sie eine LUIS-App im .lu-Format und platzieren sie in der QuellcodeverwaltungTo save a LUIS app in .lu format and place it under source control:

  • ENTWEDER: Exportieren Sie die App-Version als .lu im LUIS-Portal, und fügen Sie sie Ihrem Quellcodeverwaltungsrepository hinzu.EITHER: Export the app version as .lu from the LUIS portal and add it to your source control repository

  • ODER: Erstellen Sie mit einem Text-Editor eine .lu-Datei für eine LUIS-App, und fügen Sie sie Ihrem Quellcodeverwaltungsrepository hinzu.OR: Use a text editor to create a .lu file for a LUIS app and add it to your source control repository

Tipp

Wenn Sie den JSON-Export einer LUIS-App verwenden, können Sie diesen in LUDown konvertieren.If you are working with the JSON export of a LUIS app, you can convert it to LUDown. Mithilfe der Option --sort stellen Sie sicher, dass Absichten und Äußerungen alphabetisch sortiert werden.Use the --sort option to ensure that intents and utterances are sorted alphabetically.
Beachten Sie, dass die .lu-Exportfunktion, die im LUIS-Portal integriert ist, die Ausgabe bereits sortiert.Note that the .LU export capability built into the LUIS portal already sorts the output.

Erstellen der LUIS-App aus der QuelleBuild the LUIS app from source

Das Erstellen einer LUIS-App aus der Quelle bedeutet das Erstellen einer neuen Version der LUIS-App durch Importieren der .lu-Quelle, das Trainieren dieser Version und das Veröffentlichen.For a LUIS app, to build from source means to create a new LUIS app version by importing the .lu source , to train the version and topublish it. Sie können diese Schritte im LUIS-Portal oder über die Befehlszeile ausführen:You can do this in the LUIS portal, or at the command line:

Dateien für die QuellcodeverwaltungFiles to maintain under source control

Die folgenden Dateitypen für Ihre LUIS-Anwendung sollten mit einer Quellcodeverwaltung verwaltet werden:The following types of files for your LUIS application should be maintained under source control:

Ausschließen von Anmeldeinformationen und SchlüsselnCredentials and keys are not checked in

Schließen Sie keine Abonnementschlüssel oder ähnliche vertrauliche Werte in die Dateien ein, die Sie in Ihr Repository einchecken, da sie dort möglicherweise für nicht autorisierte Mitarbeiter einsehbar sind.Do not include subscription keys or similar confidential values in files that you check in to your repo where they might be visible to unauthorized personnel. Zu den Schlüsseln und anderen Werten, die Sie nicht einchecken sollten, zählen:The keys and other values that you should prevent from check-in include:

  • LUIS-Schlüssel für Erstellung und VorhersageLUIS Authoring and Prediction keys
  • LUIS-Endpunkte für Erstellung und VorhersageLUIS Authoring and Prediction endpoints
  • Azure-AbonnementschlüsselAzure subscription keys
  • Zugriffstoken, z. B. das Token für einen Azure-Dienstprinzipal für die Automation-AuthentifizierungAccess tokens, such as the token for an Azure service principal used for automation authentication

Strategien für die sichere Verwaltung von GeheimnissenStrategies for securely managing secrets

Zu den Strategien für die sichere Verwaltung von Geheimnissen gehören:Strategies for securely managing secrets include:

  • Wenn Sie die Git-Versionskontrolle verwenden, können Sie Laufzeitgeheimnisse in einer lokalen Datei speichern und das Einchecken der Datei verhindern, indem Sie in einer .gitignore-Datei ein Muster hinzufügen, das dem Dateinamen entspricht.If you're using Git version control, you can store runtime secrets in a local file and prevent check in of the file by adding a pattern to match the filename to a .gitignore file
  • Bei einem Automatisierungsworkflow können Sie Geheimnisse sicher in der von der Automatisierungstechnologie bereitgestellten Parameterkonfiguration speichern.In an automation workflow, you can store secrets securely in the parameters configuration offered by that automation technology. Wenn Sie z. B. GitHub Actions verwenden, können Sie Geheimnisse sicher in GitHub-Geheimnissen speichern.For example, if you're using GitHub Actions, you can store secrets securely in GitHub secrets.

Branchen und ZusammenführenBranching and merging

Verteilte Versionskontrollsysteme wie Git bieten viel Flexibilität bei der Veröffentlichung, Freigabe, Überprüfung und Iteration von Codeänderungen durch die Teammitglieder über Entwicklungsbranches, die für andere Benutzer freigegeben werden.Distributed version control systems like Git give flexibility in how team members publish, share, review, and iterate on code changes through development branches shared with others. Nutzen Sie eine Git-Branchstrategie, die für Ihr Team geeignet ist.Adopt a Git branching strategy that is appropriate for your team.

Unabhängig von Ihrer Verzweigungsstrategie besteht das Hauptprinzip darin, dass die Teammitglieder an der Lösung innerhalb eines Featurebranches arbeiten können – und zwar unabhängig von der Arbeit, die in anderen Branches ausgeführt wird.Whichever branching strategy you adopt, a key principle of all of them is that team members can work on the solution within a feature branch independently from the work that is going on in other branches.

So unterstützen Sie das unabhängige Arbeiten in Branches bei einem LUIS-ProjektTo support independent working in branches with a LUIS project:

  • Der Mainbranch verfügt über eine eigene LUIS-App:The main branch has its own LUIS app. Diese App stellt den aktuellen Zustand der Projektmappe für Ihr Projekt dar. Die aktuell aktive Version sollte dabei immer der .lu-Quelle im Mainbranch zugeordnet sein.This app represents the current state of your solution for your project and its current active version should always map to the .lu source that is in the main branch. Alle Updates an der .lu-Quelle für diese App sollten überprüft und getestet werden, damit diese App jederzeit in Buildumgebungen (z. B. in der Produktion) bereitgestellt werden kann.All updates to the .lu source for this app should be reviewed and tested so that this app could be deployed to build environments such as Production at any time. Wenn Updates an der .lu-Quelle aus einem Featurebranch im Mainbranch zusammengeführt werden, sollten Sie eine neue Version in der LUIS-App erstellen und die Versionsnummer aktualisieren.When updates to the .lu are merged into main from a feature branch, you should create a new version in the LUIS app and bump the version number.

  • Jeder Featurebranch muss eine eigene Instanz einer LUIS-App verwenden.Each feature branch must use its own instance of a LUIS app. Die Entwickler arbeiten mit dieser App in einem Featurebranch ohne Auswirkung auf Entwickler, die in anderen Branches arbeiten.Developers work with this app in a feature branch without risk of affecting developers who are working in other branches. Eine App in einem solchen Entwicklungsbranch ist eine Arbeitskopie, die gelöscht werden sollte, wenn der Featurebranch gelöscht wird.This 'dev branch' app is a working copy that should be deleted when the feature branch is deleted.

Git-Featurebranch

Arbeiten in unabhängigen Branches für die EntwicklerDevelopers can work from independent branches

Entwickler können wie folgt unabhängig von anderen Branches an Updates für eine LUIS-App arbeiten:Developers can work on updates on a LUIS app independently from other branches by:

  1. Erstellen Sie einen Featurebranch aus dem Mainbranch (abhängig von der Branchstrategie, in der Regel Main- oder Entwicklungsbranch).Creating a feature branch from the main branch (depending on your branch strategy, usually main or develop).

  2. Erstellen Sie eine neue LUIS-App im LUIS-Portal (die „Entwicklungsbranch-App“ ), die ausschließlich der Unterstützung der Arbeit in diesem Featurebranch dient.Create a new LUIS app in the LUIS portal (the "dev branch app") solely to support the work in the feature branch.

    • Wenn die .lu-Quelle für die Projektmappe bereits in Ihrem Branch vorhanden ist, da sie nach der Arbeit in einem anderen Branch zuvor im Projekt gespeichert wurde, erstellen Sie Ihren eigenen Entwicklungsbranch der LUIS-App, indem Sie die .lu-Datei importieren.If the .lu source for your solution already exists in your branch, because it was saved after work done in another branch earlier in the project, create your dev branch LUIS app by importing the .lu file.

    • Wenn Sie mit der Arbeit an einem neuen Projekt beginnen, verfügen Sie noch nicht über die .lu-Quelle für den Mainbranch der LUIS-App im Repository.If you are starting work on a new project, you will not yet have the .lu source for your main LUIS app in the repo. Sie erstellen die .lu-Datei, indem Sie Ihre Entwicklungsbranch-App im Portal exportieren, nachdem Sie die Arbeit am Featurebranch abgeschlossen haben, und sie als Teil Ihres PR einreichen.You will create the .lu file by exporting your dev branch app from the portal when you have completed your feature branch work, and submit it as a part of your PR.

  3. Arbeiten Sie an der aktiven Version Ihrer Entwicklungsbranch-App, um die erforderlichen Änderungen zu implementieren.Work on the active version of your dev branch app to implement the required changes. Es wird empfohlen, sämtliche Arbeiten am Featurebranch in einer einzigen Version Ihrer Entwicklungsbranch-App auszuführen.We recommend that you work only in a single version of your dev branch app for all the feature branch work. Wenn Sie in Ihrer Entwicklungsbranch-App mehrere Version erstellen, achten Sie beim Auslösen Ihres PR genau darauf, welche Version die Änderungen enthält, die Sie einchecken möchten.If you create more than one version in your dev branch app, be careful to track which version contains the changes you want to check in when you raise your PR.

  4. Testen Sie die Updates. Ausführliche Informationen zum Testen Ihrer Entwicklungsbranch-App finden Sie unter Testen für LUIS DevOps.Test the updates - see Testing for LUIS DevOps for details on testing your dev branch app.

  5. Exportieren Sie die aktive Version der Entwicklungsbranch-App als .lu aus der Versionsliste.Export the active version of your dev branch app as .lu from the versions list.

  6. Checken Sie Ihre Updates ein, und laden Sie zum Peer Review Ihrer Updates ein.Check in your updates and invite peer review of your updates. Wenn Sie GitHub verwenden, lösen Sie einen Pull Request aus.If you're using GitHub, you'll raise a pull request.

  7. Wenn die Änderungen genehmigt werden, führen Sie die Updates im Mainbranch zusammen.When the changes are approved, merge the updates into the main branch. An diesem Punkt erstellen Sie eine neue Version des Mainbranch der LUIS-App, für die Sie die aktualisierte .lu-Quelle im Mainbranch verwenden.At this point, you will create a new version of the main LUIS app, using the updated .lu in main. Überlegungen zum Festlegen von Versionsnamen finden Sie unter Versionsverwaltung.See Versioning for considerations on setting the version name.

  8. Wenn der Featurebranch gelöscht wird, empfiehlt es sich, auch den Entwicklungsbranch der LUIS-App zu löschen, den Sie für die Arbeit am Featurebranch erstellt haben.When the feature branch is deleted, it's a good idea to delete the dev branch LUIS app you created for the feature branch work.

Gleichzeitiges Arbeiten an mehreren Branches durch EntwicklerDevelopers can work in multiple branches concurrently

Wenn Sie das oben unter Arbeiten in unabhängigen Branches für die Entwickler beschriebene Muster befolgen, verwenden Sie in jedem Featurebranch eine eigene LUIS-Anwendung.If you follow the pattern described above in Developers can work from independent branches, then you will use a unique LUIS application in each feature branch. Ein einzelner Entwickler kann gleichzeitig an mehreren Branches arbeiten, sofern er zum richtigen Entwicklungsbranch der LUIS-App wechselt, an der er gerade arbeitet.A single developer can work on multiple branches concurrently, as long as they switch to the correct dev branch LUIS app for the branch they're currently working on.

Es wird empfohlen, für den Featurebranch und den Entwicklungsbranch der LUIS-App, den Sie für die Arbeit am Featurebranch erstellen, denselben Namen zu verwenden, damit Sie nicht versehentlich an der falschen App arbeiten.We recommend that you use the same name for both the feature branch and for the dev branch LUIS app that you create for the feature branch work, to make it less likely that you'll accidentally work on the wrong app.

Wie bereits erwähnt, wird der Einfachheit halber empfohlen, in jedem Entwicklungsbranch der App in einer einzigen Version zu arbeiten.As noted above, we recommend that for simplicity, you work in a single version in each dev branch app. Wenn Sie mehrere Versionen verwenden, achten Sie darauf, dass Sie die richtige Version aktivieren, wenn Sie zwischen Entwicklungsbranch-Apps wechseln.If you are using multiple versions, take care to activate the correct version as you switch between dev branch apps.

Gleichzeitiges Arbeiten mehrerer Entwickler am selben BranchMultiple developers can work on the same branch concurrently

Sie können es mehreren Entwicklern ermöglichen, gleichzeitig am selben Featurebranch zu arbeiten:You can support multiple developers working on the same feature branch at the same time:

  • Die Entwickler checken denselben Featurebranch aus und pushen bzw. pullen Änderungen, die sie selbst oder andere Entwickler vorgenommen haben, während sie wie gewohnt weiterarbeiten.Developers check out the same feature branch and push and pull changes submitted by themselves and other developers while work proceeds, as normal.

  • Wenn Sie das oben unter Arbeiten in unabhängigen Branches für die Entwickler beschriebene Muster befolgen, verwendet dieser Branch eine eigene LUIS-Anwendung für die Entwicklung.If you follow the pattern described above in Developers can work from independent branches, then this branch will use a unique LUIS application to support development. Dieser Entwicklungsbranch der LUIS-App wird vom ersten Mitglied des Entwicklungsteams erstellt, das mit der Arbeit in diesem Featurebranch beginnt.That 'dev branch' LUIS app will be created by the first member of the development team who begins work in the feature branch.

  • Fügen Sie dem Entwicklungsbranch der LUIS-App Teammitglieder als Mitwirkende hinzu.Add team members as contributors to the dev branch LUIS app.

  • Wenn die Arbeit am Featurebranch abgeschlossen ist, exportieren Sie die aktive Version der LUIS-App im Entwicklungsbranch als .lu aus der Versionsliste, speichern die aktualisierte .lu-Datei im Repository, checken die Änderungen ein und führen einen Pull Request aus.When the feature branch work is complete, export the active version of the dev branch LUIS app as .lu from the versions list, save the updated .lu file in the repo, and check in and PR the changes.

Integrieren von Änderungen aus einem Branch in einen anderen per Rebase oder MergeIncorporating changes from one branch to another with rebase or merge

Andere Entwickler in Ihrem Team, die in einem anderen Branch arbeiten, haben möglicherweise Updates an der .lu-Quelle vorgenommen und mit dem Mainbranch zusammengeführt, nachdem Sie Ihren Featurebranch erstellt hatten.Some other developers on your team working in another branch may have made updates to the .lu source and merged them to the main branch after you created your feature branch. Möglicherweise möchten Sie deren Änderungen in Ihre Arbeitsversion einbinden, bevor Sie weitere eigene Änderungen an Ihrem Featurebranch vornehmen.You may want to incorporate their changes into your working version before you continue to make own changes within your feature branch. Dazu können Sie ein Rebase oder Merge im Mainbranch ausführen, genau wie bei anderen Coderessourcen.You can do this by rebase or merge to main in the same way as any other code asset. Da die LUIS-App im LUDown-Format für Menschen lesbar ist, unterstützt sie die Zusammenführung mit Standardmergetools.Since the LUIS app in LUDown format is human readable, it supports merging using standard merge tools.

Wenn Sie ein Rebase für Ihre LUIS-App in einem Featurebranch ausführen, befolgen Sie diese Tipps:Follow these tips if you're rebasing your LUIS app in a feature branch:

  • Vergewissern Sie sich vor dem Rebase oder Merge, dass Ihre lokale Kopie der .lu-Quelle für Ihre App über alle aktuellen Änderungen verfügt, die Sie im LUIS-Portal vorgenommen haben. Exportieren Sie Ihre App dazu zunächst erneut aus dem Portal.Before you rebase or merge, make sure your local copy of the .lu source for your app has all your latest changes that you've applied using the LUIS portal, by re-exporting your app from the portal first. Auf diese Weise können Sie sicherstellen, dass keine Änderungen verloren gehen, die Sie im Portal vorgenommen und noch nicht exportiert haben.That way, you can make sure that any changes you've made in the portal and not yet exported don't get lost.

  • Verwenden Sie während des Zusammenführens Standardtools, um Mergekonflikte zu beheben.During the merge, use standard tools to resolve any merge conflicts.

  • Vergessen Sie nicht, Ihre App nach Abschluss des Rebase- oder Mergevorgangs erneut im Portal zu importieren, damit Sie mit der aktualisierten App arbeiten, während Sie weiterhin eigene Änderungen anwenden.Don't forget after rebase or merge is complete to re-import the app back into the portal, so that you're working with the updated app as you continue to apply your own changes.

Zusammenführen von Pull RequestsMerge PRs

Nachdem Ihr Pull Request (PR) genehmigt wurde, können Sie Ihre Änderungen mit dem Mainbranch zusammenführen.After your PR is approved, you can merge your changes to your main branch. Für die LUDown-Quelle einer LUIS-App gelten keine besonderen Überlegungen: Sie ist für Menschen lesbar und unterstützt damit das Zusammenführen mit Standardmergetools.No special considerations apply to the LUDown source for a LUIS app: it's human readable and so supports merging using standard Merge tools. Sämtliche Mergekonflikte können auf die gleiche Weise wie bei anderen Quelldateien behandelt werden.Any merge conflicts may be resolved in the same way as with other source files.

Nachdem Ihr PR zusammengeführt wurde, empfiehlt es sich, eine Bereinigung durchzuführen:After your PR has been merged, it's recommended to cleanup:

  • Löschen Sie den Branch in Ihrem Repository.Delete the branch in your repo

  • Löschen Sie den Entwicklungsbranch der LUIS-App, den Sie für den Featurebranch erstellt haben.Delete the 'dev branch' LUIS app you created for the feature branch work.

Sie sollten wie auch bei anderen Anwendungscoderessourcen Komponententests für LUIS-App-Updates schreiben.In the same way as with application code assets, you should write unit tests to accompany LUIS app updates. Verwenden Sie Continuous Integration-Workflows, um Folgendes zu testen:You should employ continuous integration workflows to test:

  • Updates in einem PR – bevor der PR zusammengeführt wirdUpdates in a PR before the PR is merged
  • Der Mainbranch der LUIS-App wurde nach einem PR genehmigt, und die Änderungen wurden im Mainbranch zusammengeführt.The main branch LUIS app after a PR has been approved and the changes have been merged into main.

Weitere Informationen finden Sie unter Testen für LUIS DevOps.For more information on testing for LUIS DevOps, see Testing for DevOps for LUIS. Weitere Informationen zum Implementieren von Workflows finden Sie unter Automatisierungsworkflows für LUIS DevOps.For more details on implementing workflows, see Automation workflows for LUIS DevOps.

Code ReviewsCode reviews

Eine LUIS-App im LUDown-Format ist für Menschen lesbar. Damit unterstützt sie die Kommunikation von Änderungen in einem PR für die Überprüfung.A LUIS app in LUDown format is human readable, which supports the communication of changes in a PR suitable for review. Komponententestdateien werden ebenfalls im LUDown-Format geschrieben und können daher ganz einfach bei einem PR überprüft werden.Unit test files are also written in LUDown format and also easily reviewable in a PR.

VersionsverwaltungVersioning

Eine Anwendung besteht aus mehreren Komponenten. Dies kann z. B. ein Bot sein, der in Azure Bot Service, QnA Maker, Azure Speech Service usw. ausgeführt wird.An application consists of multiple components that might include things such as a bot running in Azure Bot Service, QnA Maker, Azure Speech service, and more. Um das Ziel von lose gekoppelten Anwendungen zu erreichen, verwenden Sie eine Versionskontrolle, damit jede Komponente einer Anwendung unabhängig versioniert wird. Auf diese Weise können Entwickler Breaking Changes oder Updates erkennen, indem sie einfach die Versionsnummer überprüfen.To achieve the goal of loosely coupled applications, use version control so that each component of an application is versioned independently, allowing developers to detect breaking changes or updates just by looking at the version number. Es ist einfacher, die LUIS-App unabhängig von anderen Komponenten zu versionieren, wenn Sie sie in einem eigenen Repository verwalten.It's easier to version your LUIS app independently from other components if you maintain it in its own repo.

Auf die LUIS-App im Mainbranch sollte ein Versionsverwaltungsschema angewendet werden.The LUIS app for the main branch should have a versioning scheme applied. Wenn Sie Updates an der .lu-Datei für eine LUIS-App im Mainbranch zusammenführen, importieren Sie dann diese aktualisierte Quelle in eine neue Version der LUIS-App für den Mainbranch.When you merge updates to the .lu for a LUIS app into main, you'll then import that updated source into a new version in the LUIS app for the main branch.

Es wird die Verwendung eines numerischen Versionsverwaltungsschemas für die Hauptversion der LUIS-App empfohlen, zum Beispiel:It is recommended that you use a numeric versioning scheme for the main LUIS app version, for example:

major.minor[.build[.revision]]

Bei jedem Update wird die letzte Ziffer der Versionsnummer erhöht.Each update the version number is incremented at the last digit.

Über die Haupt-/Nebenversion kann der Umfang der Änderungen an der Funktionalität der LUIS-App angegeben werden:The major / minor version can be used to indicate the scope of the changes to the LUIS app functionality:

  • Hauptversion: Eine bedeutende Änderung, z. B. Unterstützung einer neuen Absicht oder EntitätMajor Version: A significant change, such as support for a new Intent or Entity
  • Nebenversion: Eine kleinere, abwärtskompatible Änderung, z. B. nach einem bedeutenden neuen TrainingMinor Version: A backwards-compatible minor change, such as after significant new training
  • Build: Keine Funktionsänderung, sondern nur ein anderer BuildBuild: No functionality change, just a different build.

Nachdem Sie die Versionsnummer für die aktuelle Revision des Mainbranch Ihrer LUIS-App festgelegt haben, müssen Sie die neue App-Version erstellen, testen und an einem Endpunkt veröffentlichen, von dem aus sie in unterschiedlichen Buildumgebungen verwendet werden kann, z. B. bei der Qualitätssicherung oder in der Produktion.Once you've determined the version number for the latest revision of your main LUIS app, you need to build and test the new app version, and publish it to an endpoint where it can be used in different build environments, such as Quality Assurance or Production. Es wird dringend empfohlen, alle diese Schritte in einem Continuous Integration-Workflow (CI) zu automatisieren.It's highly recommended that you automate all these steps in a continuous integration (CI) workflow.

Siehe:See:

  • Unter den Automatisierungsworkflows finden Sie ausführliche Informationen zum Implementieren eines CI-Workflows zum Testen und Veröffentlichen einer LUIS-App.Automation workflows for details on how to implement a CI workflow to test and release a LUIS app.
  • Unter Releaseverwaltung finden Sie Informationen zum Bereitstellen Ihrer LUIS-App.Release Management for information on how to deploy your LUIS app.

Versionsverwaltung der LUIS-App im FeaturebranchVersioning the 'feature branch' LUIS app

Wenn Sie in einem Entwicklungsbranch der LUIS-App arbeiten, den Sie erstellt haben, um die Arbeit in einem Featurebranch zu unterstützen, exportieren Sie Ihre App nach Abschluss Ihrer Arbeit und fügen die aktualisierte 'lu-Datei in Ihren PR ein.When you are working with a 'dev branch' LUIS app that you've created to support work in a feature branch, you will be exporting your app when your work is complete and you will include the updated 'lu in your PR. Der Branch in Ihrem Repository und der Entwicklungsbranch der LUIS-App sollten gelöscht werden, nachdem der PR mit dem Mainbranch zusammengeführt wurde.The branch in your repo, and the 'dev branch' LUIS app should be deleted after the PR is merged into main. Da diese App ausschließlich zur Unterstützung der Arbeit im Featurebranch dient, gibt es kein spezifisches Versionsverwaltungsschema, das Sie auf diese App anwenden müssen.Since this app exists solely to support the work in the feature branch, there's no particular versioning scheme you need to apply within this app.

Erst wenn die Änderungen in Ihrem PR mit dem Mainbranch zusammengeführt werden, sollte die Versionsverwaltung angewandt werden, damit alle Updates am Mainbranch unabhängig voneinander versioniert werden.When your changes in your PR are merged into main, that is when the versioning should be applied, so that all updates to main are versioned independently.

Nächste SchritteNext steps