Skip to content

Commit 51f1fd1

Browse files
committed
terraform draft
1 parent a309aba commit 51f1fd1

File tree

1 file changed

+51
-45
lines changed

1 file changed

+51
-45
lines changed
Lines changed: 51 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,91 @@
11
---
2-
title: Manage workspaces using Terraform
2+
title: Manage workspaces by using Terraform
33
titleSuffix: Azure Machine Learning
4-
description: Learn how to manage Azure Machine Learning workspaces using Terraform.
4+
description: Learn how to create and manage Azure Machine Learning workspaces by using Terraform.
55
services: machine-learning
66
ms.service: machine-learning
77
ms.subservice: enterprise-readiness
88
ms.custom: devx-track-terraform
99
ms.author: deeikele
1010
author: denniseik
1111
ms.reviewer: larryfr
12-
ms.date: 06/05/2023
12+
ms.date: 06/14/2024
1313
ms.topic: how-to
1414
ms.tool: terraform
1515
---
1616

17-
# Manage Azure Machine Learning workspaces using Terraform
17+
# Manage Azure Machine Learning workspaces by using Terraform
1818

19-
In this article, you learn how to create and manage an Azure Machine Learning workspace using Terraform configuration files. [Terraform](/azure/developer/terraform/)'s template-based configuration files enable you to define, create, and configure Azure resources in a repeatable and predictable manner. Terraform tracks resource state and is able to clean up and destroy resources.
19+
In this article, you learn how to create and manage an Azure Machine Learning workspace using Terraform configuration files. [Terraform](/azure/developer/terraform/) template-based configuration files enable you to define, create, and configure Azure resources in a repeatable and predictable manner. Terraform tracks resource state and can clean up and destroy resources.
2020

21-
A Terraform configuration is a document that defines the resources that are needed for a deployment. It may also specify deployment variables. Variables are used to provide input values when using the configuration.
21+
A Terraform configuration is a document that defines the resources needed for a deployment. The configuration can also specify deployment variables you can use to provide input values when you use the configuration.
2222

2323
## Prerequisites
2424

25-
* An **Azure subscription**. If you don't have one, try the [free or paid version of Azure Machine Learning](https://azure.microsoft.com/free/).
26-
* An installed version of the [Azure CLI](/cli/azure/).
27-
* Configure Terraform: follow the directions in this article and the [Terraform and configure access to Azure](/azure/developer/terraform/get-started-cloud-shell) article.
25+
- An Azure subscription with a free or paid version of Azure Machine Learning. If you don't have an Azure subscription, [create a free account before you begin](https://azure.microsoft.com/free/).
26+
- [Azure CLI](/cli/azure/install-azure-cli) installed.
27+
- Terraform configured according to the instructions in this article and in [Configure Terraform in Azure Cloud Shell with Bash](/azure/developer/terraform/get-started-cloud-shell).
2828

2929
## Limitations
3030

3131
[!INCLUDE [register-namespace](includes/machine-learning-register-namespace.md)]
3232

33-
[!INCLUDE [application-insight](includes/machine-learning-application-insight.md)]
33+
- The following limitation applies to the Application Insights instance created during workspace creation:
34+
35+
[!INCLUDE [application-insight](includes/machine-learning-application-insight.md)]
3436

3537
## Declare the Azure provider
3638

3739
Create the Terraform configuration file that declares the Azure provider:
3840

39-
1. Create a new file named `main.tf`. If working with Azure Cloud Shell, use bash:
41+
1. In a Bash shell, create a new file named *main.tf*.
4042

41-
```bash
42-
code main.tf
43-
```
43+
```bash
44+
code main.tf
45+
```
4446

4547
1. Paste the following code into the editor:
4648

47-
**main.tf**:
48-
:::code language="terraform" source="~/terraform/quickstart/101-machine-learning/main.tf":::
49+
:::code language="terraform" source="~/terraform/quickstart/101-machine-learning/main.tf":::
4950

50-
1. Save the file (**<Ctrl>S**) and exit the editor (**<Ctrl>Q**).
51+
1. Save the file by pressing Ctrl+S and exit the editor by pressing Ctrl+Q.
5152

5253
## Deploy a workspace
5354

54-
The following Terraform configurations can be used to create an Azure Machine Learning workspace. When you create an Azure Machine Learning workspace, various other services are required as dependencies. The template also specifies these [associated resources to the workspace](./concept-workspace.md#associated-resources). Depending on your needs, you can choose to use the template that creates resources with either public or private network connectivity.
55+
Use one of the following Terraform configurations to create an Azure Machine Learning workspace. An Azure Machine Learning workspace requires various other services as dependencies. The template also specifies these [dependent associated resources](./concept-workspace.md#associated-resources). Depending on your needs, you can choose to use a template that creates resources with either public or private network connectivity.
56+
57+
# [Public network](#tab/publicworkspace)
5558

56-
# [Public network connectivity](#tab/publicworkspace)
59+
The following configuration crates a workspace with public network connectivity.
60+
<!-- Some resources in Azure require globally unique names. Before deploying your resources using the following templates, set the `name` variable to a value that is unique.-->
5761

58-
Some resources in Azure require globally unique names. Before deploying your resources using the following templates, set the `name` variable to a value that is unique.
62+
Define the following variables in a file called *variables.tf*.
5963

60-
**variables.tf**:
6164
:::code language="terraform" source="~/terraform/quickstart/101-machine-learning/variables.tf":::
6265

63-
**workspace.tf**:
66+
Define the following workspace configuration in a file called *workspace.tf*:
67+
6468
:::code language="terraform" source="~/terraform/quickstart/101-machine-learning/workspace.tf":::
6569

66-
# [Private network connectivity](#tab/privateworkspace)
70+
# [Private network](#tab/privateworkspace)
71+
72+
The following configuration creates a workspace in an isolated network environment by using Azure Private Link endpoints. The template includes [private DNS zones](../dns/private-dns-privatednszone.md) to resolve domain names within the virtual network.
73+
<!-- Some resources in Azure require globally unique names. Before deploying your resources using the following templates, set the `resourceprefix` variable to a value that is unique.-->
6774

68-
The configuration below creates a workspace in an isolated network environment using Azure Private Link endpoints. [Private DNS zones](../dns/private-dns-privatednszone.md) are included so domain names can be resolved within the virtual network.
75+
If you use private link endpoints for both Azure Container Registry and Azure Machine Learning, you can't use Container Registry tasks for building [environment](/python/api/azure-ai-ml/azure.ai.ml.entities.environment) images. Instead you can build images by using an Azure Machine Learning compute cluster.
6976

70-
Some resources in Azure require globally unique names. Before deploying your resources using the following templates, set the `resourceprefix` variable to a value that is unique.
77+
To configure the cluster name to use, set the [image_build_compute_name](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace) argument. You can also [allow public access](./how-to-configure-private-link.md?tabs=python#enable-public-access) to a workspace that has a private link endpoint by using the [public_network_access_enabled](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace) argument.
7178

72-
When using private link endpoints for both Azure Container Registry and Azure Machine Learning, Azure Container Registry tasks cannot be used for building [environment](/python/api/azure-ai-ml/azure.ai.ml.entities.environment) images. Instead you can build images using an Azure Machine Learning compute cluster. To configure the cluster name of use, set the [image_build_compute_name](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace) argument. You can configure to [allow public access](./how-to-configure-private-link.md?tabs=python#enable-public-access) to a workspace that has a private link endpoint using the [public_network_access_enabled](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace) argument.
79+
Define the following variables in a file called *variables.tf*.
7380

74-
**variables.tf**:
7581
:::code language="terraform" source="~/terraform/quickstart/201-machine-learning-moderately-secure/variables.tf":::
7682

77-
**workspace.tf**:
83+
Define the following workspace configuration in a file called *workspace.tf*:
84+
7885
:::code language="terraform" source="~/terraform/quickstart/201-machine-learning-moderately-secure/workspace.tf":::
7986

80-
**network.tf**:
87+
Define the following network configuration in a file called *network.tf*:
88+
8189
```terraform
8290
# Virtual Network
8391
resource "azurerm_virtual_network" "default" {
@@ -112,30 +120,28 @@ resource "azurerm_subnet" "snet-workspace" {
112120
}
113121
114122
# ...
115-
# For full reference, see: https://github.com/Azure/terraform/blob/master/quickstart/201-machine-learning-moderately-secure/network.tf
123+
# For a full reference, see: https://github.com/Azure/terraform/blob/master/quickstart/201-machine-learning-moderately-secure/network.tf
116124
```
117125

118-
There are several options to connect to your private link endpoint workspace. To learn more about these options, refer to [Securely connect to your workspace](./how-to-secure-workspace-vnet.md#securely-connect-to-your-workspace).
126+
To learn more about the options to connect to your private link endpoint workspace, see [Securely connect to your workspace](./how-to-secure-workspace-vnet.md#securely-connect-to-your-workspace).
119127

120128
---
121129

122-
## Troubleshooting
123-
124-
### Resource provider errors
130+
## Troubleshoot resource provider errors
125131

126132
[!INCLUDE [machine-learning-resource-provider](includes/machine-learning-resource-provider.md)]
127133

128-
## Next steps
134+
## Related resources
129135

130-
* To learn more about Terraform support on Azure, see [Terraform on Azure documentation](/azure/developer/terraform/).
131-
* For details on the Terraform Azure provider and Machine Learning module, see [Terraform Registry Azure Resource Manager Provider](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace).
132-
* To find "quick start" template examples for Terraform, see [Azure Terraform QuickStart Templates](https://github.com/Azure/terraform/tree/master/quickstart):
136+
- To learn more about Terraform support on Azure, see [Terraform on Azure documentation](/azure/developer/terraform/).
137+
- For details on the Terraform Azure provider and Machine Learning module, see [Terraform Registry Azure Resource Manager Provider](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/machine_learning_workspace).
138+
- To find quickstart template examples for Terraform, see [Azure Terraform QuickStart Templates](https://github.com/Azure/terraform/tree/master/quickstart).
133139

134-
* [101: Machine learning workspace and compute](https://github.com/Azure/terraform/tree/master/quickstart/101-machine-learning) – the minimal set of resources needed to get started with Azure Machine Learning.
135-
* [201: Machine learning workspace, compute, and a set of network components for network isolation](https://github.com/Azure/terraform/tree/master/quickstart/201-machine-learning-moderately-secure) – all resources that are needed to create a production-pilot environment for use with HBI data.
136-
* [202: Similar to 201, but with the option to bring existing network components.](https://github.com/Azure/terraform/tree/master/quickstart/202-machine-learning-moderately-secure-existing-VNet).
137-
* [301: Machine Learning workspace (Secure Hub and Spoke with Firewall)](https://github.com/azure/terraform/tree/master/quickstart/301-machine-learning-hub-spoke-secure).
140+
- [101: Machine learning workspace and compute](https://github.com/Azure/terraform/tree/master/quickstart/101-machine-learning) – the minimal set of resources needed to get started with Azure Machine Learning.
141+
- [201: Machine learning workspace, compute, and a set of network components for network isolation](https://github.com/Azure/terraform/tree/master/quickstart/201-machine-learning-moderately-secure) – all resources that are needed to create a production-pilot environment for use with HBI data.
142+
- [202: Similar to 201, but with the option to bring existing network components.](https://github.com/Azure/terraform/tree/master/quickstart/202-machine-learning-moderately-secure-existing-VNet).
143+
- [301: Machine Learning workspace (Secure Hub and Spoke with Firewall)](https://github.com/azure/terraform/tree/master/quickstart/301-machine-learning-hub-spoke-secure).
138144

139-
* To learn more about network configuration options, see [Secure Azure Machine Learning workspace resources using virtual networks (VNets)](./how-to-network-security-overview.md).
140-
* For alternative Azure Resource Manager template-based deployments, see [Deploy resources with Resource Manager templates and Resource Manager REST API](../azure-resource-manager/templates/deploy-rest.md).
141-
* For information on how to keep your Azure Machine Learning up to date with the latest security updates, see [Vulnerability management](concept-vulnerability-management.md).
145+
- To learn more about network configuration options, see [Secure Azure Machine Learning workspace resources using virtual networks](./how-to-network-security-overview.md).
146+
- For alternative Azure Resource Manager template-based deployments, see [Deploy resources with Resource Manager templates and Resource Manager REST API](/azure/azure-resource-manager/templates/deploy-rest).
147+
- For information on how to keep your Azure Machine Learning up to date with the latest security updates, see [Vulnerability management](concept-vulnerability-management.md).

0 commit comments

Comments
 (0)