Предварительные условия:
- Не может быть дублированного гибридного подключения службы приложений в рамках одного плана службы приложений, настроенного для служб приложений.
Используя пример, предоставленный на их веб-сайте (https://www.pulumi.com/docs/reference/pkg/azure/appservice/hybridconnection/):
using Pulumi;
using Azure = Pulumi.Azure;
using Pulumi.AzureNextGen;
class MyStack : Stack
{
public MyStack()
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("exampleResourceGroup", new Azure.Core.ResourceGroupArgs
{
Location = "West Europe",
});
var examplePlan = new Azure.AppService.Plan("examplePlan", new Azure.AppService.PlanArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
Sku = new Azure.AppService.Inputs.PlanSkuArgs
{
Tier = "Standard",
Size = "S1",
},
});
var exampleAppService = new Azure.AppService.AppService("exampleAppService", new Azure.AppService.AppServiceArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
AppServicePlanId = examplePlan.Id,
});
var exampleNamespace = new Azure.Relay.Namespace("exampleNamespace", new Azure.Relay.NamespaceArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
SkuName = "Standard",
});
var exampleHybridConnection = new Azure.Relay.HybridConnection("exampleHybridConnection", new Azure.Relay.HybridConnectionArgs
{
ResourceGroupName = exampleResourceGroup.Name,
RelayNamespaceName = exampleNamespace.Name,
UserMetadata = "examplemetadata",
});
var exampleAppservice_hybridConnectionHybridConnection = new Azure.AppService.HybridConnection("exampleAppservice/hybridConnectionHybridConnection", new Azure.AppService.HybridConnectionArgs
{
AppServiceName = exampleAppService.Name,
ResourceGroupName = exampleResourceGroup.Name,
RelayId = exampleHybridConnection.Id,
Hostname = "testhostname.example",
Port = 8080,
SendKeyName = "RootManageSharedAccessKey",
});
}
}
Я получаю следующую ошибку:
Ошибка: невозможно получить список ключей доступа для пространства имен XXX (группа ресурсов XXX): relay.NamespacesClient # ListKeys: Ошибка при ответе на запрос: StatusCode = 404 - Исходная ошибка: autorest / azure: ответ об ошибке не может быть проанализирован: запрашиваемый ресурс defaultSender выполняет не существует. ошибка: json: невозможно демаршалировать строку в значение Go типа azure.RequestError
Чтобы исправить это, мне пришлось добавить правило авторизации пространства имен реле:
using Pulumi;
using Azure = Pulumi.Azure;
using Pulumi.AzureNextGen;
class MyStack : Stack
{
public MyStack()
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("exampleResourceGroup", new Azure.Core.ResourceGroupArgs
{
Location = "West Europe",
});
var examplePlan = new Azure.AppService.Plan("examplePlan", new Azure.AppService.PlanArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
Sku = new Azure.AppService.Inputs.PlanSkuArgs
{
Tier = "Standard",
Size = "S1",
},
});
var exampleAppService = new Azure.AppService.AppService("exampleAppService", new Azure.AppService.AppServiceArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
AppServicePlanId = examplePlan.Id,
});
var exampleNamespace = new Azure.Relay.Namespace("exampleNamespace", new Azure.Relay.NamespaceArgs
{
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
SkuName = "Standard",
});
var defaultSenderAuthorizationRule = new Pulumi.AzureNextGen.Relay.Latest.NamespaceAuthorizationRule("defaultSenderAuthorizationRule",
new AzureProviderNextGen.Relay.Latest.NamespaceAuthorizationRuleArgs
{
AuthorizationRuleName = "defaultSender",
NamespaceName = exampleNamespace .Name,
ResourceGroupName = exampleNamespace .ResourceGroupName,
Rights =
{
"Manage",
"Listen",
"Send",
},
});
var exampleHybridConnection = new Azure.Relay.HybridConnection("exampleHybridConnection", new Azure.Relay.HybridConnectionArgs
{
ResourceGroupName = exampleResourceGroup.Name,
RelayNamespaceName = exampleNamespace.Name,
UserMetadata = "examplemetadata",
});
var exampleAppservice_hybridConnectionHybridConnection = new Azure.AppService.HybridConnection("exampleAppservice/hybridConnectionHybridConnection", new Azure.AppService.HybridConnectionArgs
{
AppServiceName = exampleAppService.Name,
ResourceGroupName = exampleResourceGroup.Name,
RelayId = exampleHybridConnection.Id,
Hostname = "testhostname.example",
Port = 8080,
SendKeyName = "RootManageSharedAccessKey",
});
}
}
После этого все работает нормально, и стек завершает работу, говоря, что мой Appservice: HybridConnection создан. Тем не менее, когда я перехожу к настройкам сети / гибридного подключения службы приложений, их там нет.
Ожидаемое поведение:
После успешного создания AppService.HybridConnection он должен появиться в списке гибридных подключений службы приложений на портале Azure.
Фактическое поведение:
AppService.HybridConnection успешно создан, но не отображается в списке App Service \ Hybrid Connection.