使用版本 2 而不是版本 3 的 Terraform 媒体服务
Terraform media services using Version 2 instead of version 3
我研究了文档,发现 terraform 支持 media services 部署,我想知道如何使用版本 2 而不是默认版本 2 部署:
你能建议我在使用 Terraform 部署时如何使用特定版本吗?
我尝试手动创建两个媒体服务并找到 API 使用但不是运气,因为我找不到任何相关信息:
如果导出的模板> 这是关于版本 2 和版本 3 相同的示例
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mediaservices_testversion2_name": {
"defaultValue": "testversion2",
"type": "String"
},
"storageAccounts_sinclairdevamsstracc_externalid": {
"defaultValue": "//////////////////",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Media/mediaservices",
"apiVersion": "2015-10-01",
"name": "[parameters('/////////////')]",
"location": "West US 2",
"properties": {
"storageAccounts": [
{
"id": "[parameters('storageAccounts_//////////_externalid')]",
"isPrimary": true
}
]
}
}
]
}
我使用的代码很简单:
#Azure Provider Configuration
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.82.0"
}
}
}
provider "azurerm" {
subscription_id = var.subscription_id
tenant_id = var.tenant_id
client_id = var.client_id
features {}
}
locals {
StreamingEndpoints = 1
}
#Storage Account Resource
resource "azurerm_storage_account" "stracc" {
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}stracc"
resource_group_name = azurerm_resource_group.rg.name
location = var.location
account_tier = "Standard"
account_replication_type = "LRS"
}
#Resource Group
resource "azurerm_resource_group" "rg" {
name = upper("${var.customer}-${var.product}-RG-${var.env}-TEST")
location = var.location
}
resource "azurerm_media_services_account" "media" {
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}-media"
location = var.location
resource_group_name = azurerm_resource_group.rg.name
storage_account {
id = azurerm_storage_account.stracc.id
is_primary = true
}
}
resource "azurerm_media_streaming_endpoint" "example" {
count = local.StreamingEndpoints
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}-CH0${count.index + 1}"
resource_group_name = azurerm_resource_group.rg.name
location = var.location
media_services_account_name = azurerm_media_services_account.media.name
scale_units = 1
access_control {
ip_allow {
name = "AllowedIP"
address = "192.168.1.1"
}
}
}
我也使用 Terraform
和 ARM template
对此进行了测试,但是 Enable the Classic API's
选项没有参数,就像从 Portal 中看到的那样。
它被限制为从 Portal 本身部署,因为 Media Service API v2 已被弃用。
因此,如果您想使用 Media Service V2 直到其完全弃用,即 29 February 2024
那么作为解决方案请从门户部署它。
我研究了文档,发现 terraform 支持 media services 部署,我想知道如何使用版本 2 而不是默认版本 2 部署:
你能建议我在使用 Terraform 部署时如何使用特定版本吗?
我尝试手动创建两个媒体服务并找到 API 使用但不是运气,因为我找不到任何相关信息:
如果导出的模板> 这是关于版本 2 和版本 3 相同的示例
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mediaservices_testversion2_name": {
"defaultValue": "testversion2",
"type": "String"
},
"storageAccounts_sinclairdevamsstracc_externalid": {
"defaultValue": "//////////////////",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Media/mediaservices",
"apiVersion": "2015-10-01",
"name": "[parameters('/////////////')]",
"location": "West US 2",
"properties": {
"storageAccounts": [
{
"id": "[parameters('storageAccounts_//////////_externalid')]",
"isPrimary": true
}
]
}
}
]
}
我使用的代码很简单:
#Azure Provider Configuration
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.82.0"
}
}
}
provider "azurerm" {
subscription_id = var.subscription_id
tenant_id = var.tenant_id
client_id = var.client_id
features {}
}
locals {
StreamingEndpoints = 1
}
#Storage Account Resource
resource "azurerm_storage_account" "stracc" {
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}stracc"
resource_group_name = azurerm_resource_group.rg.name
location = var.location
account_tier = "Standard"
account_replication_type = "LRS"
}
#Resource Group
resource "azurerm_resource_group" "rg" {
name = upper("${var.customer}-${var.product}-RG-${var.env}-TEST")
location = var.location
}
resource "azurerm_media_services_account" "media" {
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}-media"
location = var.location
resource_group_name = azurerm_resource_group.rg.name
storage_account {
id = azurerm_storage_account.stracc.id
is_primary = true
}
}
resource "azurerm_media_streaming_endpoint" "example" {
count = local.StreamingEndpoints
name = "${lower(var.customer)}${lower(var.env)}${lower(var.product)}-CH0${count.index + 1}"
resource_group_name = azurerm_resource_group.rg.name
location = var.location
media_services_account_name = azurerm_media_services_account.media.name
scale_units = 1
access_control {
ip_allow {
name = "AllowedIP"
address = "192.168.1.1"
}
}
}
我也使用 Terraform
和 ARM template
对此进行了测试,但是 Enable the Classic API's
选项没有参数,就像从 Portal 中看到的那样。
它被限制为从 Portal 本身部署,因为 Media Service API v2 已被弃用。
因此,如果您想使用 Media Service V2 直到其完全弃用,即 29 February 2024
那么作为解决方案请从门户部署它。