#azure #terraform-provider-azure
Вопрос:
Я получаю следующую ошибку
│ Error: Plugin error
│
│ with provider["registry.terraform.io/hashicorp/azurerm"],
│ on nsg.tf line 13, in provider "azurerm":
│ 13: provider "azurerm" {
│
│ The plugin returned an unexpected error from plugin.(*GRPCProvider).ConfigureProvider: rpc error: code = Internal desc = grpc: error while marshaling: string field
│ contains invalid UTF-8
когда я пытаюсь выполнить терраформирование, планируйте следующий код
# Configure the Microsoft Azure Provider
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=2.74.0"
}
}
}
# Configure the Microsoft Azure Provider
provider "azurerm" {
features {}
}
resource "azurerm_network_security_group" "nsg" {
name = "TestNSG"
location = "East US"
resource_group_name = "TFResourcegroup"
}
resource "azurerm_network_security_rule" "example1" {
name = "Web80"
priority = 1001
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "*"
destination_address_prefix = "*"
resource_group_name = "TFResourcegroup"
network_security_group_name = azurerm_network_security_group.nsg.name
}
resource "azurerm_network_security_rule" "example2" {
name = "Web8080"
priority = 1000
direction = "Inbound"
access = "Deny"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "8080"
source_address_prefix = "*"
destination_address_prefix = "*"
resource_group_name = "TFResourcegroup"
network_security_group_name = azurerm_network_security_group.nsg.name
}
resource "azurerm_network_security_rule" "example3" {
name = "WebOUT"
priority = 1000
direction = "Outbound"
access = "Deny"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "*"
destination_address_prefix = "*"
resource_group_name = "TFResourcegroup"
network_security_group_name = azurerm_network_security_group.nsg.name
}
это мои версии terraform, поставщика и Azure
PS C:russnsg> terraform --version
Terraform v1.0.4
on windows_amd64
provider registry.terraform.io/hashicorp/azurerm v2.74.0
PS C:russnsg> az --version
azure-cli 2.27.2
то, что я пробовал…..
Исследуя в Интернете,.в нем говорится, что это происходит только в Azure CLI на портале Azure. Я пробовал это в коде Visual Studio и Powershell на своей собственной машине. но я получаю те же результаты..Я даже попытался положить https://registry.terraform.io/providers/hashicorp/azurerm/latest в качестве источника вместо обычного «hashicorp/azurerm», но это также приводило к ошибкам
Я действительно застрял…любые рекомендации будут с благодарностью приняты. Я с радостью развертывал ресурсы Azure весь день, используя один и тот же метод…но для некоторых reason..it просто ему это не нравится…
Комментарии:
1. Привет, я вроде как догадался об этом. . Я попытался запустить его в Bash, а не в Powershell, и он работал нормально… кто — нибудь знает, почему это может быть так?
2. Нашли ли вы какие-либо другие решения этой проблемы? У меня та же проблема.
Ответ №1:
Вероятно, это связано с проблемой с вашим сеансом командной строки Az, и вам, вероятно, потребуется снова войти в систему с помощью az login
.
Вы можете подтвердить, что это проблема, выполнив команду Az CLI, которая должна взаимодействовать с ресурсами (не только az account show
). Вот как я определил проблему:
$ az список виртуальных машин-g моя группа ресурсов
AADSTS700082: Срок действия токена обновления истек из-за бездействия. Токен был выпущен 2021-06-27T00:13:23.1948087 Z и был неактивен в течение 90.00:00:00.