From 66edc2e0803777dce9fff3335b16cd7046b4c657 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 16 Feb 2023 06:00:37 -0800 Subject: [PATCH 1/6] New sample --- .../101-azure-api-management-create/main.tf | 25 ++++++++++ .../outputs.tf | 1 + .../providers.tf | 16 +++++++ .../101-azure-api-management-create/readme.md | 20 ++++++++ .../variables.tf | 47 +++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 quickstart/101-azure-api-management-create/main.tf create mode 100644 quickstart/101-azure-api-management-create/outputs.tf create mode 100644 quickstart/101-azure-api-management-create/providers.tf create mode 100644 quickstart/101-azure-api-management-create/readme.md create mode 100644 quickstart/101-azure-api-management-create/variables.tf diff --git a/quickstart/101-azure-api-management-create/main.tf b/quickstart/101-azure-api-management-create/main.tf new file mode 100644 index 00000000..87c1f2fd --- /dev/null +++ b/quickstart/101-azure-api-management-create/main.tf @@ -0,0 +1,25 @@ +resource "random_pet" "rg_name" { + prefix = var.resource_group_name_prefix +} + +resource "azurerm_resource_group" "rg" { + name = random_pet.rg_name.id + location = var.resource_group_location +} + +resource "random_string" "name" { + length = 13 + lower = true + numeric = false + special = false + upper = false +} + +resource "azurerm_api_management" "api" { + name = "apiservice${random_string.name.result}" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + publisher_email = var.publisher_email + publisher_name = var.publisher_name + sku_name = "${var.sku}_${var.sku_count}" +} diff --git a/quickstart/101-azure-api-management-create/outputs.tf b/quickstart/101-azure-api-management-create/outputs.tf new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/quickstart/101-azure-api-management-create/outputs.tf @@ -0,0 +1 @@ + diff --git a/quickstart/101-azure-api-management-create/providers.tf b/quickstart/101-azure-api-management-create/providers.tf new file mode 100644 index 00000000..e395f149 --- /dev/null +++ b/quickstart/101-azure-api-management-create/providers.tf @@ -0,0 +1,16 @@ +terraform { + required_version = ">=0.12" + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "~>2.0" + } + random = { + source = "hashicorp/random" + version = "~>3.0" + } + } +} +provider "azurerm" { + features {} +} \ No newline at end of file diff --git a/quickstart/101-azure-api-management-create/readme.md b/quickstart/101-azure-api-management-create/readme.md new file mode 100644 index 00000000..f3c9f5a9 --- /dev/null +++ b/quickstart/101-azure-api-management-create/readme.md @@ -0,0 +1,20 @@ +# Azure API Management service + +This template deploys an Azure API Management service. + +## Terraform resource types + +- [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) +- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) +- [azurerm_api_management](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/api_management) + +## Variables + +| Name | Description | Default | +|-|-|-| +| `resource_group_name_prefix` | Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg | +| `resource_group_location` | Location of the resource group. | eastus | +| `publisher_email` | Email address of the owner of the service. | | +| `publisher_name` | Name of the owner of the service. | | +| `sku` | Pricing tier of this API Management service | Developer | +| `sku_count` | Instance size of this API Management service. | 1 | diff --git a/quickstart/101-azure-api-management-create/variables.tf b/quickstart/101-azure-api-management-create/variables.tf new file mode 100644 index 00000000..485d26f6 --- /dev/null +++ b/quickstart/101-azure-api-management-create/variables.tf @@ -0,0 +1,47 @@ +variable "resource_group_location" { + default = "eastus" + description = "Location for all resources." +} + +variable "resource_group_name_prefix" { + default = "rg" + description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." +} + +variable "publisher_email" { + description = "The email address of the owner of the service" + type = string + validation { + condition = length(var.publisher_email) > 0 + error_message = "The publisher_email must contain at least one character." + } +} + +variable "publisher_name" { + description = "The name of the owner of the service" + type = string + validation { + condition = length(var.publisher_name) > 0 + error_message = "The publisher_name must contain at least one character." + } +} + +variable "sku" { + description = "The pricing tier of this API Management service" + default = "Developer" + type = string + validation { + condition = contains(["Developer", "Standard", "Premium"], var.sku) + error_message = "The sku must be one of the following: Developer, Standard, Premium." + } +} + +variable "sku_count" { + description = "The instance size of this API Management service." + default = 1 + type = number + validation { + condition = contains([1, 2], var.sku_count) + error_message = "The sku_count must be one of the following: 1, 2." + } +} From def91ae46b8b53e4bffaa5f73a427d528a86ee12 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 16 Feb 2023 11:15:46 -0800 Subject: [PATCH 2/6] Edits per Code Review --- quickstart/101-azure-api-management-create/outputs.tf | 4 +++- quickstart/101-azure-api-management-create/providers.tf | 2 +- quickstart/101-azure-api-management-create/variables.tf | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/quickstart/101-azure-api-management-create/outputs.tf b/quickstart/101-azure-api-management-create/outputs.tf index 8b137891..0d99afb5 100644 --- a/quickstart/101-azure-api-management-create/outputs.tf +++ b/quickstart/101-azure-api-management-create/outputs.tf @@ -1 +1,3 @@ - +output "api_management_service_name" { + value = azurerm_api_management.api.name +} diff --git a/quickstart/101-azure-api-management-create/providers.tf b/quickstart/101-azure-api-management-create/providers.tf index e395f149..9db91bd4 100644 --- a/quickstart/101-azure-api-management-create/providers.tf +++ b/quickstart/101-azure-api-management-create/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = "~>2.0" + version = "~>3.0" } random = { source = "hashicorp/random" diff --git a/quickstart/101-azure-api-management-create/variables.tf b/quickstart/101-azure-api-management-create/variables.tf index 485d26f6..c7fe0f14 100644 --- a/quickstart/101-azure-api-management-create/variables.tf +++ b/quickstart/101-azure-api-management-create/variables.tf @@ -9,6 +9,7 @@ variable "resource_group_name_prefix" { } variable "publisher_email" { + default = "test@contoso.com" description = "The email address of the owner of the service" type = string validation { @@ -18,6 +19,7 @@ variable "publisher_email" { } variable "publisher_name" { + default = "publisher" description = "The name of the owner of the service" type = string validation { From 562d51ac13bd8e641b1ae6bf437a647a52cce53f Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 9 Mar 2023 11:08:55 -0800 Subject: [PATCH 3/6] Edits per Code Review --- quickstart/101-azure-api-management-create/main.tf | 4 ++-- quickstart/101-azure-api-management-create/providers.tf | 2 +- quickstart/101-azure-api-management-create/variables.tf | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/quickstart/101-azure-api-management-create/main.tf b/quickstart/101-azure-api-management-create/main.tf index 87c1f2fd..5b9cd598 100644 --- a/quickstart/101-azure-api-management-create/main.tf +++ b/quickstart/101-azure-api-management-create/main.tf @@ -7,7 +7,7 @@ resource "azurerm_resource_group" "rg" { location = var.resource_group_location } -resource "random_string" "name" { +resource "random_string" "azurerm_api_management_name" { length = 13 lower = true numeric = false @@ -16,7 +16,7 @@ resource "random_string" "name" { } resource "azurerm_api_management" "api" { - name = "apiservice${random_string.name.result}" + name = "apiservice${random_string.azurerm_api_management_name.result}" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name publisher_email = var.publisher_email diff --git a/quickstart/101-azure-api-management-create/providers.tf b/quickstart/101-azure-api-management-create/providers.tf index 9db91bd4..c7bd471d 100644 --- a/quickstart/101-azure-api-management-create/providers.tf +++ b/quickstart/101-azure-api-management-create/providers.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">=0.12" + required_version = ">=1.00" required_providers { azurerm = { source = "hashicorp/azurerm" diff --git a/quickstart/101-azure-api-management-create/variables.tf b/quickstart/101-azure-api-management-create/variables.tf index c7fe0f14..08e6455f 100644 --- a/quickstart/101-azure-api-management-create/variables.tf +++ b/quickstart/101-azure-api-management-create/variables.tf @@ -1,9 +1,11 @@ variable "resource_group_location" { + type = string default = "eastus" description = "Location for all resources." } variable "resource_group_name_prefix" { + type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } From dc7eb43fc5acfe70d4a6ac9d9427ff8b1c0aa5c0 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 9 Mar 2023 11:35:26 -0800 Subject: [PATCH 4/6] Updated outputs.tf to include rg name --- quickstart/101-azure-api-management-create/outputs.tf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/quickstart/101-azure-api-management-create/outputs.tf b/quickstart/101-azure-api-management-create/outputs.tf index 0d99afb5..71f8dc16 100644 --- a/quickstart/101-azure-api-management-create/outputs.tf +++ b/quickstart/101-azure-api-management-create/outputs.tf @@ -1,3 +1,7 @@ +output "resource_group_name" { + value = azurerm_resource_group.rg.name +} + output "api_management_service_name" { value = azurerm_api_management.api.name } From ce4ead51b57972dd3769e61e27182fe2d1967217 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 9 Mar 2023 12:30:19 -0800 Subject: [PATCH 5/6] Added info to readme --- quickstart/101-azure-api-management-create/readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quickstart/101-azure-api-management-create/readme.md b/quickstart/101-azure-api-management-create/readme.md index f3c9f5a9..eddc6dfd 100644 --- a/quickstart/101-azure-api-management-create/readme.md +++ b/quickstart/101-azure-api-management-create/readme.md @@ -6,6 +6,7 @@ This template deploys an Azure API Management service. - [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) - [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) +- [random_string](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) - [azurerm_api_management](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/api_management) ## Variables @@ -14,7 +15,7 @@ This template deploys an Azure API Management service. |-|-|-| | `resource_group_name_prefix` | Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg | | `resource_group_location` | Location of the resource group. | eastus | -| `publisher_email` | Email address of the owner of the service. | | -| `publisher_name` | Name of the owner of the service. | | +| `publisher_email` | Email address of the owner of the service. | test@contoso.com | +| `publisher_name` | Name of the owner of the service. | publisher | | `sku` | Pricing tier of this API Management service | Developer | | `sku_count` | Instance size of this API Management service. | 1 | From 2f367438a0f119e19f190a74b270d30ecafc7076 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Thu, 9 Mar 2023 17:51:11 -0800 Subject: [PATCH 6/6] Corrected version format --- quickstart/101-azure-api-management-create/providers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstart/101-azure-api-management-create/providers.tf b/quickstart/101-azure-api-management-create/providers.tf index c7bd471d..4fd5f6ba 100644 --- a/quickstart/101-azure-api-management-create/providers.tf +++ b/quickstart/101-azure-api-management-create/providers.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">=1.00" + required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm"