SaaS 앱을 위해 즉석에서 Azure SQL DB 인스턴스 복제

4233 단어 saascsharpsqlazure
Azure에서 다중 테넌트 애플리케이션을 빌드하는 경우 새 테넌트를 온보딩할 때 Azure Sql 인스턴스를 즉석에서 가동해야 할 수 있습니다. 나는 이것이 상당히 일반적인 사용 사례라고 생각했지만 놀랍게도 이 정확한 주제와 관련된 기사를 찾지 못했습니다. 여러 다른 기사를 살펴본 후, 다른 누군가가 이 게시물을 유용하게 사용할 수 있기를 바라는 마음으로 내 학습 내용을 여기에 정리하고 있습니다.

먼저 모든 SDK가 아니라 '관리' SDK인 Azure SDK가 필요합니다. 당신은 그것을 찾을 것입니다 here

첫 번째 작업은 짐작할 수 있듯이 인증입니다.

var authContext = new AuthenticationContext(<authority>); //"https://login.microsoftonline.com/"
var credential = new ClientCredential(<appId>, <appSecret>);
var authResult = await authContext.AcquireTokenAsync(<resource>, credential); //“https://management.azure.com/”
var token = new TokenCredentials(authResult.AccessToken, "Bearer");


인증 토큰을 받으면 다음 단계인 SqlManagementClient 인스턴스화로 이동할 수 있습니다.

SqlManagementClient mgmtClient = new SqlManagementClient(credentials);
mgmtClient.SubscriptionId = <subscriptionId> 


모든 테넌트가 액세스해야 하는 일부 공통 데이터가 포함된 데이터베이스가 이미 설정되어 있습니다. 목표는 새 테넌트가 플랫폼에 추가될 때마다 이 데이터베이스를 복제하는 것입니다.
이를 달성하려면 생성할 새 데이터베이스에 대한 리소스 그룹, 서버, 서비스 계층 및 Sku 정보와 함께 기존 데이터베이스에 대한 식별자를 제공해야 합니다.

client.Databases.CreateOrUpdate(resourceGroup, server, dbName, new Database(
                location: <location>, //centralus
                sku: new Sku(<skuName>, <tier>), //S0 , Standard
                createMode: "Copy",
                <sourceDatabaseId>)) // /subscriptions/.../resourceGroups/.../providers/Microsoft.Sql/servers/.../databases/<DB name>


CreateOrUpdate 메서드는 필요에 따라 데이터베이스 이름이나 리소스 ID를 검색할 수 있는 데이터베이스를 반환합니다.

당신은 그것을 가지고 있습니다. 얼마나 쉬웠습니까? 알아내는 데 몇 시간이 걸렸습니다 😂

좋은 웹페이지 즐겨찾기