Часто задаваемые вопросы об Azure DevTest LabsAzure DevTest Labs FAQ

В этой статье содержатся ответы на некоторые самые распространенные вопросы об Azure DevTest Labs.Get answers to some of the most common questions about Azure DevTest Labs.

Запись блогаBlog post

Блог команды DevTest Labs был снят с 20 марта 2019.Our DevTest Labs Team blog has been retired as of 20 March 2019. 

Где можно отслеживание обновлений компонентов с этого момента?Where can I track feature updates from now on?

Теперь мы будем публиковать обновления компонентов и информативные записи в блогах в блоге Azure и обновлениях Azure.From now on, we'll be posting feature updates and informative blog posts on the Azure blog and Azure updates. Эти записи блога также будут ссылаться на нашу документацию везде, где это необходимо.These blog posts will also link to our documentation wherever required.

Подпишитесь на блог DevTest Labs Azure и DevTest Labs Azure , чтобы следить за новыми функциями в DevTest Labs.Subscribe to the DevTest Labs Azure Blog and DevTest Labs Azure updates to stay informed about new features in DevTest Labs.

Что происходит с существующими записями блога?What happens to the existing blog posts?

Сейчас мы работаем над переносом существующих записей блога (исключая обновления непростого программного обеспечения) в нашу документацию по DevTest Labs.We're currently working on migrating existing blog posts (excluding outage updates) to our DevTest Labs documentation. Если блог MSDN является устаревшим, он будет перенаправлен в обзор документации для DevTest Labs.When the MSDN blog is deprecated, it will be redirected to the documentation overview for DevTest Labs. После перенаправления вы можете найти нужную статью в заголовке "фильтровать по".Once redirected, you can search for the article you're looking for in the 'Filter by' title. Мы еще не перенесли все записи, но должны быть выполнены в конце этого месяца.We haven't migrated all posts yet, but should be done by end of this month. 

Где можно увидеть обновления со сбоями?Where do I see outage updates?

Мы будем отправлять обновления для сбоя, используя наш обработчик Twitter, начиная с.We'll be posting outage updates using our Twitter handle from now onwards. Подпишитесь на нас в Twitter, чтобы получить последние обновления о сбоях и известных ошибках.Follow us on Twitter to get latest updates on outages and known bugs.

TwitterTwitter

Наш маркер Twitter:@azlabservicesOur Twitter handle: @azlabservices

ОбщееGeneral

Мне не удалось найти ответ на свой вопрос. Что делать?What if my question isn't answered here?

Если ваш вопрос не указан здесь, сообщите нам о том, что мы можем помочь вам найти ответ.If your question isn't listed here, let us know, so we can help you find an answer.

  • Опубликуйте вопрос в конце этой статьиPost a question at the end of this FAQ.
  • Чтобы охватить большую аудиторию, опубликуйте вопрос на форуме MSDN по Azure DevTest LabsTo reach a wider audience, post a question on the Azure DevTest Labs MSDN forum. и обсудите его с командой разработчиков Azure DevTest Labs и другими участниками сообщества.Engage with the Azure DevTest Labs team and other members of the community.
  • Чтобы сделать запрос на функцию, разместите свои запросы и предложения на форуме пользователей Azure DevTest Labs.For feature requests, submit your requests and ideas to Azure DevTest Labs User Voice.

Что такое учетная запись Майкрософт?What is a Microsoft account?

Учетная запись Майкрософт используется практически для всех действий с устройствами и службами Майкрософт.A Microsoft account is an account you use for almost everything you do with Microsoft devices and services. Это адрес электронной почты и пароль, используемые для входа в Skype, Outlook.com, OneDrive, Windows Phone, Azure и Xbox Live.It’s an email address and password that you use to sign into Skype, Outlook.com, OneDrive, Windows phone, Azure, and Xbox Live. что означает, что ваши файлы, фотографии, контакты и параметры доступны на любом вашем устройстве.A single account means that your files, photos, contacts, and settings can follow you on any device.

Примечание

Учетная запись Майкрософт, который используется для вызова Windows Live ID.A Microsoft account used to be called a Windows Live ID.

Почему следует использовать Azure DevTest Labs?Why should I use Azure DevTest Labs?

Azure DevTest Labs позволяет сэкономить время и сократить затраты рабочей группы.Azure DevTest Labs can save your team time and money. Разработчики могут создавать собственные среды с применением нескольких разных базDevelopers can create their own environments by using several different bases. и использовать артефакты для быстрого развертывания и настройки приложений.They also can use artifacts to quickly deploy and configure applications. Благодаря пользовательским образам и формулам виртуальные машины можно сохранять в качестве шаблонов, которые позже можно легко воспроизвести в группе.By using custom images and formulas, you can save virtual machines (VMs) as templates, and easily reproduce them across the team. Кроме того, служба DevTest Labs также поддерживает несколько настраиваемых политик, которые позволяют администраторам лаборатории сократить издержки и управлять средами группы.DevTest Labs also offers several configurable policies that lab administrators can use to reduce waste and manage a team's environments. К таким политикам относятся автоматическое завершение работы, пороговое значение затрат, максимальное количество виртуальных машин для каждого пользователя и максимальные размеры виртуальных машин.These policies include auto-shutdown, cost threshold, maximum VMs per user, and maximum VM size. Прочитайте дополнительные сведения об DevTest Labs в обзоре или просмотрите вводное видео.For a more in-depth explanation of DevTest Labs, see the overview or the introductory video.

Что означает "самообслуживание без проблем"?What does "worry-free self-service" mean?

Самообслуживание без проблем означает, что разработчики и тестировщики при необходимости могут создавать собственные среды.Worry-free self-service means that developers and testers create their own environments as needed. Администраторы имеют возможность убедиться, что DevTest Labs могут помочь в установке соответствующего доступа, снизить расходы на отходы и контролировать затраты.Administrators have the security of knowing that DevTest Labs can help set the appropriate access, minimize waste and control costs. Администраторы могут указать доступные размеры и максимальное количество виртуальных машин, а также определить время их запуска и завершения работы.Administrators can specify which VM sizes are allowed, the maximum number of VMs, and when VMs are started and shut down. DevTest Labs упрощает процесс контроля расходов и настройки получения оповещений о потреблении ресурсов в лаборатории.DevTest Labs also makes it easy to monitor costs and set alerts, to help you stay aware of how lab resources are being used.

Как можно использовать DevTest Labs?How can I use DevTest Labs?

DevTest Labs удобно использовать в любой момент, когда требуются среды разработки или тестирования, и вы хотите быстро воспроизвести их или управлять ими с помощью политик сохранения затрат.DevTest Labs is useful anytime you require dev or test environments, and want to reproduce them quickly, or manage them by using cost-saving policies. Ниже приведено несколько сценариев использования DevTest Labs.Here are some scenarios that our customers use DevTest Labs for:

  • Централизованное управление средами разработки и тестирования.Manage dev and test environments in one place. Использование политик для сокращения расходов и создание пользовательских образов для совместного использования сборок в группе.Use policies to reduce costs and create custom images to share builds across the team.
  • Разработка приложений с помощью пользовательских образов для сохранения состояния диска на протяжении развертывания.Develop an application by using custom images to save the disk state throughout the development stages.
  • Отслеживание расходов, связанных с ходом выполнения.Track cost in relation to progress.
  • Создание массовых сред тестирования для контроля качества.Create mass test environments for quality assurance testing.
  • Использование артефактов и формул для удобной настройки и воспроизведения приложений в разных средах.Use artifacts and formulas to easily configure and reproduce an application in various environments.
  • Распределение виртуальных машин для интенсивной работы группы (совместная работа над разработкой или тестированием) с последующим удобным отзывом этих машин после окончания события.Distribute VMs for hackathons (collaborative dev or test work), and then easily deprovision them when the event ends.

Как выставляются счета за использование DevTest Labs?How am I billed for DevTest Labs?

DevTest Labs — это бесплатная служба.DevTest Labs is a free service. Вам не нужно платить за создание лабораторий, настройку политик, шаблонов и артефактов.Creating labs and configuring policies, templates, and artifacts in DevTest Labs is free. Плата взимается только за ресурсы Azure, используемые в лабораториях, например виртуальные машины, учетные записи хранения и виртуальные сети.You pay only for the Azure resources used in your labs, such as VMs, storage accounts, and virtual networks. Дополнительные сведения о ценах на ресурсы лаборатории см. на странице цен на Azure DevTest Labs.For more information about the cost of lab resources, see Azure DevTest Labs pricing.

БезопасностьSecurity

Какие уровни безопасности предусмотрены в DevTest Labs?What are the different security levels in DevTest Labs?

Безопасность доступа определяется с помощью управления доступом на основе ролей (RBAC).Security access is determined by Role-Based Access Control (RBAC). Чтобы понять особенности доступа, нужно узнать разницу между разрешением, ролью и областью в соответствии с RBAC.To learn how access works, it helps to learn the differences between a permission, a role, and a scope, as defined by RBAC.

  • Разрешение. Разрешение — это определенный доступ на выполнение конкретного действия.Permission: A permission is a defined access to a specific action. Например, доступ на чтение ко всем виртуальным машинам.For example, a permission can be read access to all VMs.
  • Роль: Роль — это набор разрешений, которые могут быть сгруппированы и назначены пользователю.Role: A role is a set of permissions that can be grouped and assigned to a user. Например, пользователь с ролью владельца подписки имеет доступ ко всем ресурсам в подписке.For example, a user with a subscription owner role has access to all resources within a subscription.
  • Область. Область — это уровень в иерархии ресурсов Azure.Scope: A scope is a level within the hierarchy of an Azure resource. Например, область может быть группой ресурсов, отдельной лабораторией или целой подпиской.For example, a scope can be a resource group, a single lab, or the entire subscription.

DevTest Labs предусматривает два типа ролей для предоставления пользователю разрешений в рамках службы:Within the scope of DevTest Labs, there are two types of roles that define user permissions:

  • Владелец лаборатории. Эта роль имеет доступ ко всем ресурсам в лаборатории.Lab owner: A lab owner has access to all resources in the lab. Он может изменять политики, читать и записывать любые виртуальные машины, изменять параметры виртуальной сети и т. д.A lab owner can modify policies, read and write to any VMs, change the virtual network, and so on.
  • Пользователь лаборатории. Эта роль позволяет просматривать все ресурсы лаборатории, такие как виртуальные машины, политики и виртуальные сети.Lab user: A lab user can view all lab resources, such as VMs, policies, and virtual networks. Однако пользователь лаборатории не может изменять политики или виртуальные машины, созданные другими пользователями.However, a lab user can't modify policies or any VMs that were created by other users.

В DevTest Labs также можно создать пользовательские роли.You also can create custom roles in DevTest Labs. Дополнительные сведения о создании пользовательских ролей в DevTest Labs см. в статье Предоставление пользователю разрешений для определенных политик лаборатории.To learn how to create custom roles in DevTest Labs, see Grant user permissions to specific lab policies.

Области имеют иерархическую структуру, поэтому когда пользователю назначаются разрешения на определенном уровне, ему автоматически предоставляются разрешения во всех областях более низкого уровня.Because scopes are hierarchical, when a user has permissions at a certain scope, the user is automatically granted those permissions at every lower-level scope in the scope. Например, если пользователю назначена роль владельца подписки, он имеет доступ ко всем ресурсам в подписке.For instance, if a user is assigned the role of subscription owner, the user has access to all resources in a subscription. К этим ресурсам относятся виртуальные машины, виртуальные сети и лабораторные занятия.These resources include VMs, virtual networks, and labs. Владелец подписки автоматически наследует роль владельца лаборатории.A subscription owner automatically inherits the role of lab owner. Однако владелец лаборатории не может наследовать роль владельца подписки,However, the opposite is not true. так как он имеет доступ к лаборатории, которая находится ниже уровня подписки в рамках иерархии.A lab owner has access to a lab, which is a lower scope than the subscription level. Таким образом, владелец лаборатории не может просматривать виртуальные машины, виртуальные сети и другие ресурсы, находящиеся за пределами лаборатории.So, a lab owner can't see VMs, virtual networks, or any other resources that are outside the lab.

Как определить управление доступом на основе ролей для сред DevTest Labs, чтобы убедиться в том, что ИТ-отдел может выполнять управление, в то время как разработчики и тестировщики могут выполнять свою работу?How do I define role-based access control for my DevTest Labs environments to ensure that IT can govern while developers/test can do their work?

Существует принятый шаблон, однако детали зависят от вашей организации.There is a broad pattern, however the detail depends on your organization.

Центральная ИТ-отдел должен владеть только тем, что необходимо, и предоставить группам проектов и приложений необходимый уровень контроля.Central IT should own only what is necessary and enable the project and application teams to have the needed level of control. Как правило, это означает, что центральный ИТ-отдел владеет подпиской и обрабатывает основные ИТ-функции, такие как сетевые конфигурации.Typically, it means that central IT owns the subscription and handles core IT functions such as networking configurations. Набор владельцев подписки должен быть небольшим.The set of owners for a subscription should be small. Эти владельцы могут назначить дополнительных владельцев при необходимости или применить политики уровня подписки, например "без общедоступных IP-адресов".These owners can nominate additional owners when there's a need, or apply subscription-level policies, for example “No Public IP”.

Может быть набор пользователей, которым требуется доступ через подписку, такой как поддержка уровня 1 или 2.There may be a subset of users that require access across a subscription, such as Tier1 or Tier 2 support. В этом случае мы рекомендуем предоставить этим пользователям доступ участника, чтобы они могли управлять ресурсами, но не могли предоставлять пользователю доступ или изменять политики.In this case, we recommend that you give these users the contributor access so that they can manage the resources, but not provide user access or adjust policies.

Ресурс DevTest Labs должен принадлежать владельцам, которые связаны с командой проекта или приложения,The DevTest Labs resource should be owned by owners who are close to the project/application team. Это обусловлено тем, что они понимают требования к компьютерам и требуемому программному обеспечению.It's because they understand their requirements for machines, and required software. В большинстве организаций владельцем этого ресурса DevTest Labs часто является ведущий руководитель разработки или руководитель проекта.In most organizations, the owner of this DevTest Labs resource is commonly the project/development lead. Этот владелец может управлять пользователями и политиками в рамках лабораторной среды, а также контролировать все виртуальные машины в среде DevTest Labs.This owner can manage users and policies within the lab environment and can manage all VMs in the DevTest Labs environment.

Участники группы проекта или приложения должны быть добавлены в роль пользователей DevTest Labs .The project/application team members should be added to the DevTest Labs Users role. Эти пользователи могут создавать виртуальные машины в соответствии с политиками на уровне лаборатории и подписки.These users can create virtual machines (in-line with the lab and subscription-level policies). Кроме того, они могут управлять собственными виртуальными машинами.They can also manage their own virtual machines. Они не могут управлять виртуальными машинами, которые принадлежат другим пользователям.They can't manage virtual machines that belong to other users.

Дополнительные сведения см. в статье Azure Enterprise: Документация по управлению подпиской.For more information, see Azure enterprise scaffold – prescriptive subscription governance documentation.

Разделы справки создать роль, позволяющую пользователям выполнять определенные задачи?How do I create a role to allow users to do a specific task?

Сведения о создании пользовательских ролей и назначении для них разрешений см. в статье Предоставление пользователю разрешений для определенных политик лаборатории.For a comprehensive article about how to create custom roles and assign permissions to a role, see Grant user permissions to specific lab policies. Ниже приведен пример скрипта для создания роли Пользователь Advanced DevTest Labs с разрешениями на запуск и завершение работы виртуальных машин в лаборатории.Here's an example of a script that creates the role DevTest Labs Advanced User, which has permission to start and stop all VMs in the lab:

$policyRoleDef = Get-AzRoleDefinition "DevTest Labs User"
$policyRoleDef.Actions.Remove('Microsoft.DevTestLab/Environments/*')
$policyRoleDef.Id = $null
$policyRoleDef.Name = "DevTest Labs Advanced User"
$policyRoleDef.IsCustom = $true
$policyRoleDef.AssignableScopes.Clear()
$policyRoleDef.AssignableScopes.Add("subscriptions/<subscription Id>")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Start/action")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Stop/action")
$policyRoleDef = New-AzRoleDefinition -Role $policyRoleDef  

Как организация может обеспечить соблюдение действующих корпоративных политик безопасности?How can an organization ensure corporate security policies are in place?

Организация может добиться этого, обеспечив следующее:An organization may achieve it by doing the following actions:

  • Необходимо разработать и опубликовать комплексную политику безопасности.Developing and publishing a comprehensive security policy. В политике должны быть установлены правила надлежащего использования ПО и облачных ресурсов.The policy articulates the rules of acceptable use associated with the using software, cloud assets. В ней также должно быть четко определено, что является нарушением политики.It also defines what clearly violates the policy.
  • Нужно разработать собственный образ, собственные артефакты и процесс развертывания, предполагающий оркестрацию правил безопасности, определенных в Active Directory.Develop a custom image, custom artifacts, and a deployment process that allows for orchestration within the security realm that is defined with active directory. Такой подход обеспечивает соблюдение корпоративных границ и устанавливает общий набор элементов для управления средой.This approach enforces the corporate boundary and sets a common set of environmental controls. Разработчики могут использовать эти элементы для управления средой, чтобы реализовать безопасный жизненный цикл разработки в рамках общего процесса работы.These controls against the environment a developer can consider as they develop and follow a secure development lifecycle as part of their overall process. Цель также заключается в том, чтобы предоставить среду, которая не чрезмерно ограничена, что может помешать разработке, но является разумным набором элементов управления.The objective also is to provide an environment that isn't overly restrictive that may hinder development, but a reasonable set of controls. Групповые политики в подразделении, которое использует виртуальные машины лаборатории, могут быть частью общих групповых политик, используемых в производственной среде.The group policies at the organization unit (OU) that contains lab virtual machines could be a subset of the total group policies that are found in production. Либо же эти групповые политики могут представлять собой дополнительный набор, используемый для надлежащего устранения выявленных рисков.Alternatively, they can be an additional set to properly mitigate any identified risks.

Как организация может обеспечить целостность данных, чтобы разработчики, работающие удаленно, не могли удалить код либо добавить вредоносное или неутвержденное ПО?How can an organization ensure data integrity to ensure that remoting developers can't remove code or introduce malware or unapproved software?

Существуют несколько уровней элементов управления для снижения угрозы, связанной с действиями внешних консультантов, подрядчиков или сотрудников, которые работают удаленно с DevTest Labs.There are several layers of control to mitigate the threat from external consultants, contractors, or employees that are remoting in to collaborate in DevTest Labs.

Как сказано ранее, первым шагом должно стать составление и применение политики допустимого использования, в которой четко оговорены наказания за нарушение этой политики.As stated previously, the first step must have an acceptable use policy drafted and defined that clearly outlines the consequences when someone violates the policy.

Первый уровень элементов управления для удаленного доступа — применение политики удаленного доступа через VPN-подключение, которое не подключено напрямую к лаборатории.The first layer of controls for remote access is to apply a remote access policy through a VPN connection that isn't directly connected to the lab.

Второй уровень элементов управления — это применение набора объектов групповой политики, которые предотвращают копирование и вставку при использовании удаленного рабочего стола.The second layer of controls is to apply a set of group policy objects that prevent copy and paste through remote desktop. Можно внедрить политику сети, которая запрещает использование служб, например FTP или RDP, для подключения из-за пределов среды.A network policy could be implemented to not allow outbound services from the environment such as FTP and RDP services out of the environment. Определяемая пользователем маршрутизация может принудительно передать весь сетевой трафик Azure в локальную среду, но маршрутизация не смогла выполнить учет всех URL-адресов, которые могут разрешить передачу данных, если не будет управляться через прокси-сервер для проверки содержимого и сеансов.User-defined routing could force all Azure network traffic back to on-premises, but the routing couldn't account for all URLs that might allow uploading of data unless controlled through a proxy to scan content and sessions. В виртуальной сети, используемой в DevTest Labs, необходимо запретить общедоступные IP-адреса, чтобы предотвратить подключения типа "мост" к внешним сетевым ресурсам.Public IPs could be restricted within the virtual network supporting DevTest Labs to not allow bridging of an external network resource.

В конечном итоге, в Организации должны применяться те же ограничения, что и для всех возможных методов съемных носителей или внешних URL-адресов, которые могут принимать записи содержимого.Ultimately, the same type of restrictions needs to be applied across the organization, which would account for all possible methods of removable media or external URLs that could accept a post of content. Для проверки и внедрения политики безопасности необходимо привлечь соответствующего специалиста.Consult with your security professional to review and implement a security policy. Дополнительные рекомендации см. на веб-сайте Microsoft Cyber Security (Кибер-безопасность Майкрософт).For more recommendations, see Microsoft Cyber Security.

Настройка лабораторииLab configuration

Как создать лабораторию на основе шаблона Resource Manager?How do I create a lab from a Resource Manager template?

В GitHub доступен репозиторий шаблонов Azure Resource Manager Azure для лабораторий, которые можно развернуть "как есть" или изменить, чтобы создать пользовательские шаблоны для своих лабораторий.We offer a GitHub repository of lab Azure Resource Manager templates that you can deploy as-is or modify to create custom templates for your labs. Каждый шаблон содержит ссылку для развертывания лаборатории, так как она находится в собственной подписке Azure.Each template has a link to deploy the lab as it's in your own Azure subscription. Вы также можете настроить шаблон и развернуть его с помощью PowerShell или Azure CLI.Or, you can customize the template and deploy by using PowerShell or Azure CLI.

Можно ли создать все виртуальные машины в общей группе ресурсов вместо того, чтобы каждый компьютер был в отдельной группе ресурсов?Can I have all virtual machines to be created in a common resource group instead having each machine in its own resource group?

Да, в качестве владельца лаборатории вы можете либо разрешить для вашей лаборатории выделение группы ресурсов, либо создать все виртуальные машины, созданные в указанной вами общей группе ресурсов.Yes, as a lab owner, you can either let the lab handle resource group allocation for you or have all virtual machines created in a common resource group that you specify.

Отдельный сценарий группы ресурсов:Separate resource group scenario:

  • DevTest Labs создает новую группу ресурсов для каждой виртуальной машины общедоступных и частных IP-адресов.DevTest Labs creates a new resource group for every public/private IP virtual machine you spin up
  • DevTest Labs создает группу ресурсов для общих IP-компьютеров, принадлежащих к одному и тому же размеру.DevTest Labs creates a resource group for shared IP machines that belong to the same size.

Сценарий общей группы ресурсов:Common resource group scenario:

Как правильно поддерживать соглашения об именовании в среде DevTest Labs?How do I maintain a naming convention across my DevTest Labs environment?

Вы можете расширить существующие корпоративные соглашения об именовании на операции в среде Azure и поддерживать их единообразие для всей среды DevTest Labs.You may want to extend current enterprise naming conventions to Azure operations and make them consistent across the DevTest Labs environment. Мы рекомендуем вам создать четкие начальные политики сразу же при развертывании DevTest Labs.When deploying DevTest Labs, we recommend that you have specific starting policies. Для обеспечения согласованности эти политики развертываются с помощью централизованного скрипта и шаблонов JSON.You deploy these policies by a central script and JSON templates to enforce consistency. Политики наименования также можно реализовать в политиках Azure, применяемых на уровне подписки.Naming policies can be implemented through Azure policies applied at the subscription level. Примеры кода JSON для службы "Политика Azure" вы найдете в статье Примеры для Политики Azure.For JSON samples for Azure Policy, see Azure Policy samples.

Сколько лабораторий можно создать в рамках одной подписки?How many labs can I create under the same subscription?

Определенного ограничения на количество лабораторий, которые можно создать в рамках одной подписки, нет.There isn't a specific limit on the number of labs that can be created per subscription. Но количество используемых ресурсов ограничено для каждой лаборатории.However, the amount of resources used per subscription is limited. Дополнительные сведения см. в статье Подписка Azure, границы, квоты и ограничения службы и записи блога об увеличении предельных значений ограничений.You can read about the limits and quotas for Azure subscriptions and how to increase these limits.

Сколько виртуальных машин можно создать на лабораторию?How many VMs can I create per lab?

Определенного ограничения на количество виртуальных машин, которые можно создать на лабораторию, нет.There is no specific limit on the number of VMs that can be created per lab. Тем не менее используемые ресурсы (ядра виртуальных машин, общедоступные IP-адреса и т. д.) ограничены для каждой подписки.However, the resources (VM cores, public IP addresses, and so on) that are used are limited per subscription. Дополнительные сведения см. в статье Подписка Azure, границы, квоты и ограничения службы и записи блога об увеличении предельных значений ограничений.You can read about the limits and quotas for Azure subscriptions and how to increase these limits.

Разделы справки определить отношение числа пользователей к лаборатории и общее число лабораторий, необходимых для Организации?How do I determine the ratio of users per lab and the overall number of labs that are needed across an organization?

Мы рекомендуем причислять к одной лаборатории все бизнес-подразделения и группы разработки, которые связаны с одним проектом.We recommend that business units and development groups that are associated with the same development project are associated with the same lab. Это позволит применять к обеим группам одинаковые политики, образы и процедуры завершения работы.It allows for same types of policies, images, and shutdown policies to be applied to both groups.

Иногда нужно также учитывать географические границы.You may also need to consider geographic boundaries. Например, разработчики в Северной востоке США (US) могут использовать лабораторию, подготовленную в Восточной США 2.For example, developers in the North East United States (US) may use a lab provisioned in East US2. В то же время разработчики из Далласа (Техас) и Денвера (Колорадо) будут направляться к ресурсу в регионе "Центрально-южная часть США".And, developers in Dallas, Texas, and Denver, Colorado may be directed to use a resource in US South Central. Если ведется совместная работа с внешней организацией, ее представителей можно назначить в отдельную лабораторию, которая не используется разработчиками организации.If there is a collaborative effort with an external third party, they could be assigned to a lab that is not used by internal developers.

Вы также можете использовать лабораторию для конкретного проекта в Azure DevOps Projects.You may also use a lab for a specific project within Azure DevOps Projects. Тогда вы сможете применить правила безопасности путем использования группы Azure Active Directory, которая предоставляет доступ к обоим наборам ресурсов.Then, you apply security through a specified Azure Active Directory group, which allows access to both set of resources. Еще одной границей для объединения пользователей может служить виртуальная сеть, назначенная лаборатории.The virtual network assigned to the lab can be another boundary to consolidate users.

Как предотвратить случайное удаление ресурсов в лаборатории?How can we prevent the deletion of resources within a lab?

Мы рекомендуем правильно предоставить разрешения на уровне лаборатории, чтобы только авторизованные пользователи могли удалять ресурсы или изменять политики лаборатории.We recommend that you set proper permissions at the lab level so that only authorized users can delete resources or change lab policies. Разработчиков следует назначать в группу Пользователи DevTest Labs.Developers should be placed within the DevTest Labs Users group. Ведущий разработчик или ответственный за инфраструктуру получает статус владельца DevTest Labs.The lead developer or the infrastructure lead should be the DevTest Labs Owner. Рекомендуется иметь только двух владельцев лаборатории.We recommend you have only two lab owners. Эту же политику следует применять и к репозиториям кода, чтобы избежать его повреждения.This policy extends towards the code repository to avoid corruption. Пользователи лаборатории имеют права на использование ресурсов, но не могут обновлять политики лаборатории.Lab users have rights to use resources but can't update lab policies. Сведения о наборе ролей и прав в лаборатории для каждой встроенной группы см. в статье Добавление владельцев и пользователей в Azure DevTest Labs.See the following article that lists the roles and rights that each built-in group has within a lab: Add owners and users in Azure DevTest Labs.

  1. В портал Azureперейдите в лабораторию.In the Azure portal, go to the lab.
  2. Скопируйте URL-адрес лаборатории из браузера и предоставьте к нему доступ пользователям лаборатории.Copy the lab URL from your browser, and then share it with your lab users.

Примечание

Если пользователь лаборатории является внешним пользователем с учетная запись Майкрософт, но не является членом Active Directory экземпляра вашей организации, он может увидеть сообщение об ошибке при попытке доступа к общей ссылке.If a lab user is an external user who has a Microsoft account, but who is not a member of your organization's Active Directory instance, the user might see an error message when they try to access the shared link. В этом случае предложите им выбрать свое имя в правом верхнем углу на портале Azure.If an external user sees an error message, ask the user to first select their name in the upper-right corner of the Azure portal. Затем в разделе Каталог меню пользователь может выбрать каталог, в котором находится лаборатория.Then, in the Directory section of the menu, the user can select the directory where the lab exists.

ВМVirtual machines

Почему на странице "виртуальные машины" не отображаются виртуальные машины, которые я вижу в DevTest Labs?Why can't I see VMs on the Virtual Machines page that I see in DevTest Labs?

При создании виртуальной машины в DevTest Labs вы получили разрешение на доступ к этой виртуальной машине.When you create a VM in DevTest Labs, you're given permission to access that VM. Вы можете просмотреть виртуальную машину как на странице лабораторий, так и на странице виртуальные машины .You can view the VM both on the labs page and on the Virtual Machines page. Пользователи, которым назначена роль владельца DevTest Labs , могут просматривать все виртуальные машины, созданные в лаборатории, на странице все виртуальные машины лаборатории.Users assigned to the DevTest Labs Owner role can see all VMs that were created in the lab on the lab's All Virtual Machines page. Однако пользователям, имеющим роль пользователя DevTest Labs , не предоставляется автоматически доступ на чтение ресурсов виртуальной машины, созданных другими пользователями.However, users who have the DevTest Labs User role are not automatically granted read access to VM resources that other users have created. Таким образом, эти виртуальные машины не отображаются на странице виртуальные машины .So, those VMs are not displayed on the Virtual Machines page.

Как создать несколько виртуальных машин с помощью одного шаблона?How do I create multiple VMs from the same template at once?

Существует два варианта одновременного создания нескольких виртуальных машин из одного шаблона:You have two options for simultaneously creating multiple VMs from the same template:

Как переместить имеющиеся виртуальные машины Azure в лабораторию DevTest Labs?How do I move my existing Azure VMs into my DevTest Labs lab?

Чтобы скопировать имеющиеся виртуальные машины в DevTest Labs, сделайте следующее:To copy your existing VMs to DevTest Labs:

  1. Скопируйте VHD-файл имеющейся виртуальной машины с помощью скрипта Windows PowerShell.Copy the VHD file of your existing VM by using a Windows PowerShell script.
  2. Создайте пользовательский образ в лаборатории DevTest Labs.Create the custom image inside your DevTest Labs lab.
  3. Затем создайте на его основе виртуальную машину.Create a VM in the lab from your custom image.

Можно ли присоединить к виртуальной машине несколько дисков?Can I attach multiple disks to my VMs?

Да, такая возможность поддерживается.Yes, you can attach multiple disks to your VMs.

Если требуется использовать образ ОС Windows для тестирования, нужно ли приобретать подписку MSDN?If I want to use a Windows OS image for my testing, do I have to purchase an MSDN subscription?

Чтобы использовать образы клиентской ОС Windows (Windows 7 или более поздней версии) для разработки или тестирования в Azure, выполните одно из следующих действий.To use Windows client OS images (Windows 7 or a later version) for your development or testing in Azure, take one of the following steps:

Дополнительные сведения о деньгах на счете в Azure по каждому предложению MSDN см. в статье Ежемесячная сумма денег на счете в Azure для подписчиков Visual Studio.For more information about the Azure credits for each MSDN offering, see Monthly Azure credit for Visual Studio subscribers.

Как автоматизировать процесс удаления всех виртуальных машин в моей лаборатории?How do I automate the process of deleting all the VMs in my lab?

Как владелец лаборатории вы можете удалить виртуальные машины из лаборатории в портал Azure.As a lab owner, you can delete VMs from your lab in the Azure portal. или с помощью скрипта PowerShell.You also can delete all the VMs in your lab by using a PowerShell script. В следующем примере в разделе значения для изменения комментариев измените значения параметров.In the following example, under the values to change comment, modify the parameter values. Значения subscriptionId, Лабресаурцеграуп и Лабнаме можно получить в области лаборатория в портал Azure.You can retrieve the subscriptionId, labResourceGroup, and labName values from the lab pane in the Azure portal.

# Delete all the VMs in a lab.

# Values to change:
$subscriptionId = "<Enter Azure subscription ID here>"
$labResourceGroup = "<Enter lab's resource group here>"
$labName = "<Enter lab name here>"

# Sign in to your Azure account.
Connect-AzAccount

# Select the Azure subscription that has the lab. This step is optional
# if you have only one subscription.
Select-AzSubscription -SubscriptionId $subscriptionId

# Get the lab that has the VMs that you want to delete.
$lab = Get-AzResource -ResourceId ('subscriptions/' + $subscriptionId + '/resourceGroups/' + $labResourceGroup + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# Get the VMs from that lab.
$labVMs = Get-AzResource | Where-Object {
          $_.ResourceType -eq 'microsoft.devtestlab/labs/virtualmachines' -and
          $_.Name -like "$($lab.Name)/*"}

# Delete the VMs.
foreach($labVM in $labVMs)
{
    Remove-AzResource -ResourceId $labVM.ResourceId -Force
}

ОкруженияEnvironments

Как применить шаблоны Resource Manager в моей среде DevTest Labs?How can I use Resource Manager templates in my DevTest Labs Environment?

Шаблоны диспетчер ресурсов развертываются в среде DevTest Labs с помощью действий, упомянутых в статье о средах DevTest Labs .You deploy your Resource Manager templates into a DevTest Labs environment by using steps mentioned in the Environments feature in DevTest Labs article. Вкратце, вам нужно разместить нужные шаблоны Resource Manager в репозиторий Git (Azure Repos или GitHub) и добавить в лабораторию частный репозиторий для шаблонов.Basically, you check your Resource Manager templates into a Git Repository (either Azure Repos or GitHub), and add a private repository for your templates to the lab. Этот сценарий может оказаться нецелесообразным, если вы используете DevTest Labs для размещения машин разработки, но может быть полезным при создании промежуточной среды, которая представляет собой рабочую среду.This scenario may not be useful if you're using DevTest Labs to host development machines but may be useful if you're building a staging environment, which is representative of production.

Также стоит отметить, что количество виртуальных машин на лабораторию или на пользователя ограничивает только количество машин, созданных самостоятельно в самой лаборатории, а не в каких-либо средах (диспетчер ресурсов шаблонов).It's also worth noting that the number of virtual machines per lab or per user option only limits the number of machines natively created in the lab itself, and not by any environments (Resource Manager templates).

Пользовательские образыCustom Images

Как мне настроить легко воспроизводимый процесс, позволяющий использовать корпоративные пользовательские образы в среде DevTest Labs?How can I set up an easily repeatable process to bring my custom organizational images into a DevTest Labs environment?

Ознакомьтесь с этим видео по шаблону фабрики изображений.See this video on Image Factory pattern. Это достаточно сложный сценарием, и предлагаемые для него скрипты служат только примерами для изучения.This scenario is an advanced scenario, and the scripts provided are sample scripts only. Если потребуется внести в них изменения, поддерживайте и обслуживайте специально созданные для вашей среды скрипты.If any changes are required, you need to manage and maintain the scripts used in your environment.

Дополнительные сведения о создании фабрики образов см. в разделе Создание настраиваемой фабрики изображений в Azure DevTest Labs.For detailed information on creating an image factory, see Create a custom image factory in Azure DevTest Labs.

В чем разница между пользовательским образом и формулой?What is the difference between a custom image and a formula?

Пользовательский образ — это управляемый образ.A custom image is a managed image. Формула — это настраиваемый образ, для которого можно задать дополнительные параметры, а затем сохранить их для воспроизведения в будущем.A formula is an image that you can configure with additional settings, and then save and reproduce. Пользовательский образ рекомендуется использовать для быстрого создания нескольких сред с одинаковой базой.A custom image might be preferable if you want to quickly create several environments by using the same basic, immutable image. А формула лучше подходит, если необходимо воспроизвести конфигурацию виртуальной машины с последними обновлениями как часть виртуальной сети или подсети или как виртуальную машину определенного размера.A formula might be better if you want to reproduce the configuration of your VM with the latest bits, as part of a virtual network or subnet, or as a VM of a specific size. Дополнительные сведения см. в статье Сравнение пользовательских образов и формул в DevTest Labs.For a more in-depth explanation, see Comparing custom images and formulas in DevTest Labs.

Когда мне использовать формулу, а когда — пользовательский образ?When should I use a formula vs. custom image?

Решающими факторами в этом вопросе обычно будут стоимость и возможность повторного использования.Typically, the deciding factor in this scenario is cost and reuse. Если у вас есть сценарий, в котором многим пользователям и лабораториям требуется изображение с большим количеством программного обеспечения на основе базового образа, можно уменьшить затраты, создав пользовательский образ.If you have a scenario where many users/labs require an image with a lot of software on top of the base image, then you could reduce costs by creating a custom image. Это означает, что образ создается один раз.It means that the image is created once. сокращая время настройки виртуальной машины и затраты на работу виртуальной машины в период настройки.It reduces the setup time of the virtual machine and the cost incurred due to the virtual machine running when setup occurs.

Но есть и другой важный фактор — частота изменений, вносимых в пакет программного обеспечения.However, an additional factor to note is the frequency of changes to your software package. Если вы ежедневно выполняете сборку программного продукта, который должен присутствовать на виртуальных машинах пользователей, вместо пользовательского образа лучше применить формулу.If you run daily builds and require that software to be on your users’ virtual machines, consider using a formula instead of a custom image.

Более подробное описание см. в разделе Сравнение пользовательских образов и формул в DevTest Labs.For a more in-depth explanation, see Comparing custom images and formulas in DevTest Labs.

Как автоматизировать процесс передачи VHD-файлов для создания пользовательских образов?How do I automate the process of uploading VHD files to create custom images?

Существует два варианта, чтобы автоматизировать процесс передачи VHD-файлов для создания пользовательских образов:To automate uploading VHD files to create custom images, you have two options:

  • Скопируйте или передайте VHD-файлы в учетную запись хранения, связанную с лабораторией, с помощью AzCopy.Use AzCopy to copy or upload VHD files to the storage account that's associated with the lab.
  • Или воспользуйтесь обозревателем хранилищ Azure.Use Azure Storage Explorer. Обозреватель хранилищ — это автономное приложение, работающее на платформе Windows, OSX и Linux.Storage Explorer is a standalone app that runs on Windows, OS X, and Linux.

Чтобы найти целевую учетную запись хранения, связанную с лабораторией, сделайте следующее:To find the destination storage account that's associated with your lab:

  1. Войдите на портале Azure.Sign in to the Azure portal.
  2. В меню слева выберите Группы ресурсов.On the left menu, select Resource Groups.
  3. Найдите и выберите группу ресурсов, связанную с вашей лабораторией.Find and select the resource group that's associated with your lab.
  4. В разделе Обзор выберите одну из учетных записей хранения.Under Overview, select one of the storage accounts.
  5. Выберите Большие двоичные объекты.Select Blobs.
  6. Просмотрите список отправленных файлов.Look for uploads in the list. Если файлы отсутствуют, вернитесь к шагу 4 и выберите другую учетную запись хранения.If none exists, return to step 4 and try another storage account.
  7. В команде AzCopy введите URL-адрес в качестве места назначения.Use the URL as the destination in your AzCopy command.

Когда мне использовать образ Azure Marketplace, а когда — пользовательский образ, созданный в компании?When should I use an Azure Marketplace image vs. my own custom organizational image?

Когда мне использовать образ Azure Marketplace, а когда — пользовательский образ, созданный в компании?When should I use an Azure Marketplace image vs. my own custom organizational image?

По умолчанию следует использовать только образы Azure Marketplace, если у вас нет очень специфичных задач или организационных требований.Azure Marketplace should be used by default unless you have specific concerns or organizational requirements. Вот несколько распространенных допустимых причин для исключений:Some common examples include;

  • настолько сложный процесс установки программного обеспечения, что его лучше включать в состав базового образа;Complex software setup that requires an application to be included as part of the base image.
  • Установка и настройка приложения может занять много часов, что не является эффективным использованием времени вычислений для добавления в образ Azure Marketplace.Installation and setup of an application could take many hours, which aren't an efficient use of compute time to be added on an Azure Marketplace image.
  • разработчикам и тест-инженерам нужен быстрый доступ к виртуальной машине и минимальные потери времени на настройку новой виртуальной машины;Developers and testers require access to a virtual machine quickly, and want to minimize the setup time of a new virtual machine.
  • обязательные требования или нормативные условия (например, политики безопасности), которые должны строго выполняться для всех компьютеров.Compliance or regulatory conditions (for example, security policies) that must be in place for all machines.
  • Использование пользовательских образов не должно считаться нелегкой.Using custom images shouldn't be considered lightly. Они предоставляют дополнительную сложность, так как теперь необходимо управлять файлами VHD для базовых образов.They introduce extra complexity, as you now must manage VHD files for those underlying base images. Также вам придется регулярно устанавливать в базовые образы исправления и обновления программного обеспечения.You also need to routinely patch those base images with software updates. Это могут быть обновления операционной системы и (или) любые обновления конфигурации для основного пакета программного обеспечения.These updates include new operating system (OS) updates, and any updates or configuration changes needed for the software package itself.

АртефактыArtifacts

Что такое артефакты?What are artifacts?

Артефакты — это настраиваемые элементы, используемые для развертывания последних обновлений или средств разработки на виртуальной машине.Artifacts are customizable elements that you can use to deploy your latest bits or deploy your dev tools to a VM. Прикрепите артефакты к виртуальной машине при ее создании.Attach artifacts to your VM when you create the VM. После подготовки виртуальной машины артефакты используются для ее развертывания и настройки.After the VM is provisioned, the artifacts deploy and configure your VM. В нашем общедоступном репозитории GitHubдоступны различные предварительно существовавшие артефакты.Various pre-existing artifacts are available in our public GitHub repository. Однако вы также можете создать собственные.You can also author your own artifacts.

Во время создания виртуальной машины произошел сбой артефакта.My artifact failed during VM creation. Как устранить эту проблему?How do I troubleshoot it?

Сведения о том, как получить журналы для артефактов со сбоями, см. в статье Диагностика сбоев артефактов в лаборатории.To learn how to get logs for your failed artifact, see How to diagnose artifact failures in DevTest Labs.

В каких случаях организации следует использовать в DevTest Labs общедоступный репозиторий артефактов, а в каких случаях частный?When should an organization use a public artifact repository vs. private artifact repository in DevTest Labs?

Общедоступный репозиторий артефактов содержит начальный набор пакетов ПО, которые используются чаще всего.The public artifact repository provides an initial set of software packages that are most commonly used. Он помогает осуществлять быстрое развертывание без затрат времени на повторную установку типовых средств и надстроек для разработчика. Можно осуществлять развертывание в собственном частном репозитории.It helps with rapid deployment without having to invest time to reproduce common developer tools and add-ins. You can choose to deploy their own private repository. Можно использовать общедоступный и частный репозитории одновременно.You can use a public and a private repository in parallel. Также можно отключить общедоступный репозиторий.You may also choose to disable the public repository. Решение о развертывании частного репозитория должно учитывать следующее:The criteria to deploy a private repository should be driven by the following questions and considerations:

  • Существует ли в компании требование использовать ПО с корпоративными лицензиями в рамках предложения DevTest Labs?Does the organization have a requirement to have corporate licensed software as part of their DevTest Labs offering? Если ответ утвердительный, тогда следует создать частный репозиторий.If the answer is yes, then a private repository should be created.
  • Разрабатывает ли организация собственное ПО, выполняющее определенные операции, которые являются необходимым элементом общего процесса подготовки ресурсов?Does the organization develop custom software that provides a specific operation, which is required as part of the overall provisioning process? Если ответ утвердительный, тогда следует развернуть частный репозиторий.If the answer is yes, then a private repository should be deployed.
  • Если политика управления Организации требует изоляции, а внешние репозитории не находятся под управлением Direct Configuration Management в Организации, следует развернуть репозиторий закрытых артефактов.If organization's governance policy requires isolation, and external repositories aren't under direct configuration management by the organization, a private artifact repository should be deployed. В рамках этого процесса можно создать начальную копию общедоступного репозитория и интегрировать ее с частным репозиторием.As part of this process, an initial copy of the public repository can be copied and integrated with the private repository. Затем общедоступный репозиторий можно отключить, чтобы сотрудники организации не имели к нему доступа.Then, the public repository can be disabled so that no one within the organization can access it anymore. При таком подходе все пользователи в организации обязаны использовать только один репозиторий, одобренный организацией. Этот подход требует минимального изменения конфигурации.This approach forces all users within the organization to have only a single repository that is approved by the organization and minimize configuration drift.

Следует ли организации планировать использование одного репозитория или нескольких?Should an organization plan for a single repository or allow multiple repositories?

В рамках общей системы управления и стратегии контроля над конфигурацией мы рекомендуем использовать один центральный репозиторий.As part of your organization's overall governance and configuration management strategy, we recommend that you use a centralized repository. Если используются несколько репозиториев, со временем они могут превратиться в изолированные хранилища неуправляемого ПО.When you use multiple repositories, they may become silos of unmanaged software over the time. При наличии центрального репозитория несколько команд могут использовать артефакты из него в своих проектах.With a central repository, multiple teams can consume artifacts from this repository for their projects. Это обеспечивает соблюдение стандартов и правил безопасности, упрощает управление и предотвращает дублирование трудозатрат.It enforces standardization, security, ease of management, and eliminates the duplication of efforts. В рамках централизации рекомендуется выполнить следующие действия для упрощения управления и обеспечения стабильности в долгосрочной перспективе:As part of the centralization, the following actions are recommended practices for long-term management and sustainability:

  • Свяжите службу Azure Repos с тем же клиентом Azure Active Directory, который используется для проверки подлинности и авторизации в подписке Azure.Associate the Azure Repos with the same Azure Active Directory tenant that the Azure subscription is using for authentication and authorization.
  • Создайте группу с именем All DevTest Labs Developers в централизованно управляемом Azure Active Directory.Create a group named All DevTest Labs Developers in Azure Active Directory that is centrally managed. Любой разработчик, который участвует в разработке артефактов, должен входить в эту группу.Any developer who contributes to artifact development should be placed in this group.
  • Эту же группу Azure Active Directory можно использовать для предоставления доступа к репозиторию Azure Repos и к лаборатории.The same Azure Active Directory group can be used to provide access to the Azure Repos repository and to the lab.
  • В Azure Repos следует использовать создание ветвей и вилок из основного репозитория в рабочей среде в отдельный репозиторий разработки.In Azure Repos, branching or forking should be used to a separate an in-development repository from the primary production repository. Содержимое добавляется в ветвь master только с помощью запроса на вытягивание после надлежащей проверки кода.Content is only added to the master branch with a pull request after a proper code review. Когда сотрудник, проверяющий код, одобрит изменение, ведущий разработчик, отвечающий за обслуживание ветви master, выполнит слияние обновленного кода.Once the code reviewer approves the change, a lead developer, who is responsible for maintenance of the master branch, merges the updated code.

Интеграция CI/CDCI/CD integration

Можно ли интегрировать DevTest Labs с собственной цепочкой инструментов непрерывной интеграции и доставки?Does DevTest Labs integrate with my CI/CD toolchain?

Если вы используете Azure DevOps, вы можете использовать расширение задач DevTest Labs для автоматизации конвейера выпуска в DevTest Labs.If you're using Azure DevOps, you can use a DevTest Labs Tasks extension to automate your release pipeline in DevTest Labs. Это расширение можно использовать для выполнения следующих задач:Some of the tasks that you can do with this extension include:

  • автоматическое создание и развертывание виртуальной машины,Create and deploy a VM automatically. а также ее настройка с помощью последней сборки с использованием задачи "Копирование файлов Azure" или задачи PowerShell Azure DevOps Services;You also can configure the VM with the latest build by using Azure File Copy or PowerShell Azure DevOps Services tasks.
  • автоматическая запись состояния виртуальной машины после тестирования с целью воспроизведения ошибки на таком же экземпляре для дальнейшего исследования;Automatically capture the state of a VM after testing to reproduce a bug on the same VM for further investigation.
  • Удалите виртуальную машину в конце конвейера выпуска, если она больше не нужна.Delete the VM at the end of the release pipeline, when it's no longer needed.

Дополнительные сведения и руководство по использованию расширения Azure DevOps Services см. в следующих записях блога:The following blog posts offer guidance and information about using the Azure DevOps Services extension:

Для других цепочек инструментов непрерывной интеграции (CI) и непрерывной поставки (CD) можно реализовать такие же сценарии путем развертывания шаблонов Azure Resource Manager с помощью командлетов Azure PowerShell и пакетов SDK для .NET.For other continuous integration (CI)/continuous delivery (CD) toolchains, you can achieve the same scenarios by deploying Azure Resource Manager templates by using Azure PowerShell cmdlets and .NET SDKs. Для интеграции DevTest Labs с набором инструментов также можно использовать REST API для DevTest Labs.You also can use REST APIs for DevTest Labs to integrate with your toolchain.

СетиNetworking

Когда мне лучше создать новую виртуальную сеть для среды DevTest Labs, а когда — использовать существующую виртуальную сеть?When should I create a new virtual network for my DevTest Labs environment vs. using an existing virtual network?

Если виртуальным машинам необходимо взаимодействовать с существующей инфраструктурой, рассмотрите возможность использования существующей виртуальной сети в среде DevTest Labs.If your VMs need to interact with existing infrastructure, then consider using an existing virtual network inside your DevTest Labs environment. При использовании ExpressRoute может потребоваться максимально ограничить количество виртуальных сетей и подсетей, чтобы не фрагментировать пространство IP-адресов, назначенное для использования в подписках.If you use ExpressRoute, you may want to minimize the amount of VNets / Subnets so that you don’t fragment your IP address space that gets assigned for use in the subscriptions.

Рассмотрите возможность использования шаблона пиринга виртуальной сети (модель-звезда).Consider using the VNet peering pattern here (Hub-Spoke model) too. Такой подход обеспечивает взаимодействие между виртуальными сетями и подсетью в рамках подписок.This approach enables vnet/subnet communication across subscriptions. В противном случае каждой среде DevTest Labs потребуется собственная виртуальная сеть.Otherwise, each DevTest Labs environment could have its own virtual network.

Существуют ограничения на количество виртуальных сетей на подписку.There are limits on the number of virtual networks per subscription. По умолчанию действует ограничение в 50 сетей, но его можно увеличить до 100.The default amount is 50, though this limit can be raised to 100.

Когда мне лучше использовать общий, общедоступный и частный IP-адреса?When should I use a shared IP vs. public IP vs. private IP?

Если вы используете подключение VPN или Express Route типа "сеть — сеть", лучше всего применить частные IP-адреса. Тогда ваши компьютеры будут доступны во внутренней сети, но недоступны через Интернет.If you use a site-to-site VPN or Express Route, consider using private IPs so that your machines are accessible via your internal network, and inaccessible over public internet.

Примечание

Владельцы лаборатории могут изменить эту политику подсетей, чтобы никто не мог случайно создать общедоступный IP-адрес для своей виртуальной машины.Lab owners can change this subnet policy to ensure that no one accidentally creates public IP addresses for their VMs. Владельцу подписки следует создать политику подписки, запрещающую создание общедоступных IP-адресов.The subscription owner should create a subscription policy preventing public IPs from being created.

При использовании общего общедоступного IP-адреса все виртуальные машины в лаборатории совместно используют один общедоступный IP-адрес.When using shared public IPs, the virtual machines in a lab share a public IP address. Такой подход может оказаться полезным, если важно не превысить ограничения на количество общедоступных IP-адресов для подписки.This approach can be helpful when you need to avoid breaching the limits on public IP addresses for a given subscription.

Да.Yes. Здесь важно учитывать два элемента — входящий и исходящий трафик.There are two aspects to consider – inbound and outbound traffic.

  • Входящий трафик — если у виртуальной машины нет общедоступного IP-адреса, то доступ к нему через Интернет невозможен.Inbound traffic – If the virtual machine doesn't have a public IP address, then it cannot be reached by the internet. Распространенный подход заключается в том, чтобы гарантировать, что политика уровня подписки настроена, так что ни один пользователь не может создать общедоступный IP-адрес.A common approach is to ensure that a subscription-level policy is set, such that no user can create a public IP address.
  • Исходящий трафик . Если вы хотите запретить виртуальным машинам доступ к общедоступному Интернету напрямую и принудительно настроить трафик через корпоративный брандмауэр, можно направить трафик локально через Express Route или VPN, используя принудительную маршрутизацию.Outbound traffic – If you want to prevent virtual machines accessing public internet directly and force traffic through a corporate firewall, then you can route traffic on-premises via express route or VPN, by using forced routing.

Примечание

Если у вас есть прокси-сервер, который блокирует трафик без параметров прокси-сервера, не забывайте добавлять исключения в учетную запись хранения артефактов лаборатории.If you have a proxy server that blocks traffic without proxy settings, do not forget to add exceptions to the lab’s artifact storage account.

Вы также можете добавить группы безопасности сети для виртуальных машины или подсетей.You could also use network security groups for virtual machines or subnets. Этот шаг добавит дополнительный уровень защиты, позволяющий разрешать или блокировать трафик.This step adds an additional layer of protection to allow / block traffic.

Устранение неполадокTroubleshooting

Почему имеющаяся виртуальная сеть не сохраняется должным образом?Why isn't my existing virtual network saving properly?

Причина этого может заключаться в том, что в имени виртуальной сети содержатся точки.One possibility is that your virtual network name contains periods. Если это так, удалите точки или замените их дефисами,If so, try removing the periods or replacing them with hyphens. а затем попробуйте сохранить виртуальную сеть снова.Then, try again to save the virtual network.

Почему при подготовке из PowerShell выводится ошибка Parent resource not found (Родительский ресурс не найден)?Why do I get a "Parent resource not found" error when I provision a VM from PowerShell?

Если один ресурс является родительским для другого ресурса, то перед созданием этого дочернего ресурса должен существовать его родительский ресурс.When one resource is a parent to another resource, the parent resource must exist before you create the child resource. Если родительский ресурс не существует, появится сообщение ParentResourceNotFound .If the parent resource doesn't exist, you see a ParentResourceNotFound message. Если не задать зависимость от родительского ресурса, то дочерний ресурс может быть развернут раньше родительского.If you don't specify a dependency on the parent resource, the child resource might be deployed before the parent.

Виртуальные машины представляют собой дочерние ресурсы в лаборатории в группе ресурсов.VMs are child resources under a lab in a resource group. При использовании шаблонов Resource Manager для развертывания виртуальных машин с помощью PowerShell имя группы ресурсов, указанное в скрипте PowerShell, должно совпадать с именем группы ресурсов лаборатории.When you use Resource Manager templates to deploy VMs by using PowerShell, the resource group name provided in the PowerShell script should be the resource group name of the lab. Дополнительные сведения см. в статье Устранение распространенных ошибок развертывания в Azure с помощью Azure Resource Manager | Microsoft Azure.For more information, see Troubleshoot common Azure deployment errors.

Где найти дополнительные сведения об ошибке при сбое развертывания виртуальной машины?Where can I find more error information if a VM deployment fails?

Ошибки при развертывании виртуальной машины записываются в журналы действий.VM deployment errors are captured in activity logs. Журналы действий ВИРТУАЛЬНЫХ машин лаборатории можно найти в разделе журналы аудита или Диагностика виртуальных машин в меню ресурсов на странице виртуальной машины лаборатории (Эта страница отображается после выбора виртуальной машины в списке мои виртуальные машины).You can find lab VM activity logs under Audit logs or Virtual machine diagnostics on the resource menu on the lab's VM page (the page appears after you select the VM from the My virtual machines list).

В некоторых случаях ошибка развертывания возникает до начала развертывания виртуальной машины.Sometimes, the deployment error occurs before VM deployment begins. Например, при превышении лимита подписки для ресурса, созданного с помощью виртуальной машины.An example is when the subscription limit for a resource that was created with the VM is exceeded. В таком случае сведения об ошибке регистрируются на уровне журналов действий.In this case, the error details are captured in the lab-level activity logs. Журналы действий находятся под параметрами конфигурации и политик.Activity logs are located at the bottom of the Configuration and policies settings. Дополнительные сведения об использовании журналов действий в Azure см. в статье Просмотр журналов действий для аудита действий с ресурсами.For more information about using activity logs in Azure, see View activity logs to audit actions on resources.

Почему при попытке создать лабораторию появляется сообщение об ошибке "Местоположение недоступно для типа ресурса"?Why do I get "location is not available for resource type" error when trying to create a lab?

При попытке создать лабораторию может появиться сообщение об ошибке следующего вида:You may see an error message similar to the following one when you try to create a lab:

The provided location 'australiacentral' is not available for resource type 'Microsoft.KeyVault/vaults'. List of available regions for the resource type is 'northcentralus,eastus,northeurope,westeurope,eastasia,southeastasia,eastus2,centralus,southcentralus,westus,japaneast,japanwest,australiaeast,australiasoutheast,brazilsouth,centralindia,southindia,westindia,canadacentral,canadaeast,uksouth,ukwest,westcentralus,westus2,koreacentral,koreasouth,francecentral,southafricanorth

Эту ошибку можно устранить, выполнив одно из следующих действий.You can resolve this error by taking one of the following steps:

Вариант 1Option 1

Проверьте доступность типа ресурса в регионах Azure на странице доступность продуктов по регионам .Check availability of the resource type in Azure regions on the Products available by region page. Если тип ресурса недоступен в определенном регионе, DevTest Labs не поддерживает создание лаборатории в этом регионе.If the resource type isn't available in a certain region, DevTest Labs doesn't support creation of a lab in that region. Выберите другой регион при создании лаборатории.Select another region when creating your lab.

Вариант 2Option 2

Если тип ресурса доступен в вашем регионе, проверьте, зарегистрирован ли он в вашей подписке.If the resource type is available in your region, check if it's registered with your subscription. Это можно сделать на уровне владельца подписки, как показано в этой статье.It can be done at the subscription owner level as shown in this article.