Azure 유창한 리소스 관리를 사용하여 새로운 구독에 리소스 공급자를 등록하는 방법은 무엇입니까?
우리는 공급자를 레지스트리에 Azure fluent resource management에 다음과 같은 기능을 사용할 수 있습니다.
var result=resourceManagementClient.Providers.Register("provider name");
나도 데모를 해.
Preparetion :
1.Create C# 콘솔 프로젝트를하고 Microsoft.Azure.Management.ResourceManager.Fluent
참조 :
Registry Azure Active Directory application and assign Role
그리고 우리가 tenantId, 클라이언트 ID, clientSecretKey
단계를 얻을 수 있습니다 (210)
2.Get
public static async Task<string> GetAccessToken(string tenantId, string clientId, string clientSecretKey)
{
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
ClientCredential clientCredential = new ClientCredential(clientId, clientSecretKey);
var tokenResponse = await context.AcquireTokenAsync("https://management.azure.com/", clientCredential);
var accessToken = tokenResponse.AccessToken;
return accessToken;
}
3. 초기화 resourceManagementClient 개체
TokenCredentials ccCredentials = new TokenCredentials(GetAccessToken(tenantId, appId, secretKey).Result);
var resourceManagementClient = new ResourceManagementClient(ccCredentials)
{
SubscriptionId = subscriptionId
};
4.Registry 자원 제공자 accesstoken
우리는 또한 unregistied 제공자를 나열 할 수 있습니다 var resources = resourceManagementClient.Providers.List().ToList(x => x.RegistrationState.Equals("NotRegistered"));
var result=resourceManagementClient.Providers.Register("provider name");

5. Azure 포털에서 확인하십시오.

코드 :
static string appId = "Registried Azure AD Appliction Id";
static string secretKey = "Client secret Key";
static string tenantId = "tenant Id ";
private static string subscriptionId = "subscription Id ";
public static async Task<string> GetAccessToken(string azureTenantId, string azureAppId, string azureSecretKey)
{
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
ClientCredential clientCredential = new ClientCredential(appId, secretKey);
var tokenResponse = await context.AcquireTokenAsync("https://management.azure.com/", clientCredential);
var accessToken = tokenResponse.AccessToken;
return accessToken;
}
static void Main(string[] args)
{
TokenCredentials ccCredentials = new TokenCredentials(GetAccessToken(tenantId, appId, secretKey).Result);
var resourceManagementClient = new ResourceManagementClient(ccCredentials)
{
SubscriptionId = subscriptionId
};
var list1 = resourceManagementClient.Providers.List().ToList();
var resource = resourceManagementClient.Providers.List().ToList().FirstOrDefault(x => x.NamespaceProperty.Equals("TrendMicro.DeepSecurity") && x.RegistrationState.Equals("NotRegistered"));
var registry =resourceManagementClient.Providers.Register(resource?.NamespaceProperty);
}
패키지.구성 :
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.Management.ResourceManager.Fluent" version="1.0.0" targetFramework="net452" />
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.3" targetFramework="net452" />
<package id="Microsoft.Rest.ClientRuntime" version="2.3.5" targetFramework="net452" />
<package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.5" targetFramework="net452" />
<package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.2.12" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
</packages>