1

Azure 자동 배포 및 스왑 도구를 생성하는 작업으로 C# 및 Azure Resource Manager를 사용하여 WebAPI 서버에 추가하고 싶습니다. 그러나 설명서가 제한적으로 보입니다. 예를 들어Azure 웹 사이트 배포/백업/로그 관리에 대한 지침

다음은 그 방법 만 7 결과를 반환 인터넷 검색 ARMs BeginSwapSlotWithProduction()

에 대한 링크입니다!

Azure PowerShell cmdlets은 잘 설명되어 있습니다.

  • http://ruslany.net/2016/10/using-powershell-to-manage-azure-web-app-deployment-slots/
  • 그리고

  • https://docs.microsoft.com/en-us/azure/app-service/web-sites-staged-publishing#azure-powershell-cmdlets-for-deployment-slots
    • 그래서 템플릿과 푸른 리소스 관리자입니다. < - 유형 안전하지 않습니다.

      저는 Powershell을 C#에서 문서화 된 것과 같이 사용하는 것을 고려했습니다. here. 하지만 시스템과 싸우고있는 것 같습니다.

      이 질문을 오디션 기반에서 유지하려고 시도합니다. 여기서 언급하지 않은 다른 대안이 있습니까?

      • 푸른 리소스 관리자 (유창함 기반)와
      • 푸른 리소스 관리자
      • 푸른 PowerShell을
      • 푸른 리소스 관리자 REST (약하게 입력) 리소스 관리자 템플릿.

      기본적으로 Azure와 상호 작용할 수있는 문서화 된 강력한 형식의 방법을 찾고 있습니다.

    답변

    1

    웹 응용 프로그램을 교체하거나 배포하려는 경우 Microsoft.Azure.Management.FluentMicrosoft.Azure.Management.ResourceManager.Fluent을 사용할 수 있습니다. 또한 github Azure SDK에서 더 많은 데모 코드를 얻을 수 있습니다. 신임 정보 파일을 얻는 방법은 Authentication in Azure Management Libraries for .NET을 참조하십시오.

    다음은 데모 코드입니다.

    var credentials = SdkContext.AzureCredentialsFactory.FromFile(@"Credential file path"); 
    var azure = Azure 
          .Configure() 
          .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic) 
          .Authenticate(credentials) 
          .WithDefaultSubscription(); 
    
    //create WebApp 
    var webApp = azure.WebApps.Define(appName) 
    .WithRegion(Region.USWest) 
    .WithNewResourceGroup(rgName) 
    .WithNewFreeAppServicePlan() 
    .Create(); 
    
    //Deploy WebApp 
    webApp .Deploy().WithPackageUri("packageUri"); 
    
    //get WebApp 
    var webApp = azure.WebApps.GetByResourceGroup("rgName", "appName"); 
    
    //swap WebApp 
    webApp.Swap("slotName"); 
    
    +0

    덕분에, 나는 스왑 상태를 확인하는 방법을 찾을 수없는 것으로 조사 후 위를 작성하라는 메시지가 표시되었다. 당신의 코드 샘플은 굉장합니다, 나는 '유창하지 않은'버전으로 많이 완성했습니다. [현재 스왑 상태 # 3843을 얻을 수 있어야 함] (https://github.com/Azure/azure-sdk-for-net/issues/3843)을 참조하십시오. 이와 같이 찾을 수 없으므로 ARM을 사용하여 질문하는 메시지가 표시됩니다. – ttugates

    +0

    이제 Fluent 접근 방식을 시도했습니다. 나는 그것을 더 좋아한다. 나는 MS Engineer의 [statement] 때문에 유창하지 못하게되었다. (https://stackoverflow.com/questions/46347543/possible-to-create-new-database-from-point-in-time-restore-using- azure-arms-sqlm # answer-46370430)는 Fluent의 효과에 비해 기능 지원이 적습니다. 이전에 각 관리 네임 스페이스에 대해 '클라이언트'를 만들었으며 Auth가 훨씬 깨끗하다는 것을 입증하는 방식으로 'FromServicePrincipal'을 사용할 것입니다. – ttugates