You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure.ResourceManager.DataFactory SDK获取SHIR认证密钥的方法咨询

在Azure.ResourceManager.DataFactory SDK中获取SHIR认证密钥的C#实现

问题描述

使用Azure.ResourceManager.DataFactory SDK创建*Self Hosted Integration Runtime(SHIR)*后,无法找到对应的C#方法获取其认证密钥。已实现SHIR创建的代码如下:

ArmClient armClient = new ArmClient(
    new ClientSecretCredential(tenantId, clientId, clientSecret,
    new TokenCredentialOptions
    {
        AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
    }),
    subscriptionId,
    new ArmClientOptions { Environment = ArmEnvironment.AzurePublicCloud });

ResourceIdentifier resourceIdentifier = SubscriptionResource.CreateResourceIdentifier(subscriptionId);

SubscriptionResource subscriptionResource = armClient.GetSubscriptionResource(resourceIdentifier);
var resourceGroupOperation = subscriptionResource.GetResourceGroups().Get(resourceGroupName);

ResourceGroupResource resourceGroupResource = resourceGroupOperation.Value;

DataFactoryData dataFactoryData = new DataFactoryData(AzureLocation.EastUS);

var dataFactoryOperation = resourceGroupResource.GetDataFactories().CreateOrUpdate(WaitUntil.Completed, dataFactoryName, dataFactoryData);
DataFactoryResource dataFactoryResource = dataFactoryOperation.Value;
var dataFactoryIntegrationRuntimeData = new DataFactoryIntegrationRuntimeData(
    new SelfHostedIntegrationRuntime
    {
        Description = "A self-hosted integration runtime from C# Azure SDK",
    });
var createOrUpdateOperation = dataFactoryResource.GetDataFactoryIntegrationRuntimes().CreateOrUpdate(
    WaitUntil.Completed,
    integrationRuntimeName,
    dataFactoryIntegrationRuntimeData);
Console.WriteLine(createOrUpdateOperation.WaitForCompletionResponse().Content);

尝试过var keys = dataFactoryResource.GetDataFactoryIntegrationRuntime(integrationRuntimeName);但无法获取密钥,已知Python SDK中对应方法为list_auth_keys:

auth_keys = adf_client.integration_runtimes.list_auth_keys(
        resource_group_name=rg_name,
        factory_name=df_name,
        integration_runtime_name=ir_name,
    )

解决方案

在C# SDK中,获取SHIR认证密钥需调用ListAuthKeysAsync(异步)或ListAuthKeys(同步)方法,该方法属于DataFactoryIntegrationRuntimeResource对象。

步骤1:获取SHIR资源实例

可以从创建操作的结果直接获取,或通过名称查询已存在的SHIR:

// 方式1:从创建操作结果中获取(推荐,无需额外查询)
DataFactoryIntegrationRuntimeResource irResource = createOrUpdateOperation.Value;

// 方式2:查询已存在的SHIR
var irOperation = await dataFactoryResource.GetDataFactoryIntegrationRuntime(integrationRuntimeName).GetAsync();
DataFactoryIntegrationRuntimeResource irResource = irOperation.Value;

步骤2:调用密钥获取方法

// 异步方式
var authKeysResult = await irResource.ListAuthKeysAsync(WaitUntil.Completed);
IntegrationRuntimeAuthKeys authKeys = authKeysResult.Value;

// 同步方式
var authKeysResult = irResource.ListAuthKeys(WaitUntil.Completed);
IntegrationRuntimeAuthKeys authKeys = authKeysResult.Value;

步骤3:访问密钥属性

获取到的IntegrationRuntimeAuthKeys对象包含两个密钥属性:

Console.WriteLine($"认证密钥1:{authKeys.AuthKey1}");
Console.WriteLine($"认证密钥2:{authKeys.AuthKey2}");

完整代码示例

将以下代码添加到原SHIR创建代码之后:

// 获取SHIR资源实例
DataFactoryIntegrationRuntimeResource irResource = createOrUpdateOperation.Value;

// 获取认证密钥
var authKeysResult = await irResource.ListAuthKeysAsync(WaitUntil.Completed);
IntegrationRuntimeAuthKeys authKeys = authKeysResult.Value;

// 输出密钥
Console.WriteLine($"SHIR认证密钥1: {authKeys.AuthKey1}");
Console.WriteLine($"SHIR认证密钥2: {authKeys.AuthKey2}");

注意:确保使用的Azure.ResourceManager.DataFactory SDK为最新版本,旧版本可能未包含该方法。


内容的提问来源于stack exchange,提问作者ahad omer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:27:09