2017-10-23 21 views
-1

파워 쉘 스크립트를 통해 Kudu에 액세스하려고합니다. 링크는 다음과 같습니다 : https://adc-dev.scm.azurewebsites.net. 위의 링크에서 D:\home\site\wwwroot\bin\apache-tomcat-8.0.33\webapps 위치에있는 war 파일을 복사해야합니다.파워 쉘 스크립트를 사용하여 Azure의 Kudu에 액세스하는 방법

현재 FTP 작업을 추가하여 VSTS를 사용하여 war 파일을 배포하고 있습니다. 하지만 최신 war을 배포하기 전에 Azure Kudu 위치의 일부 위치에서 이전 war의 백업을 가져 가고 싶습니다. D:\home\site\wwwroot\bin\apache-tomcat-8.0.33 (루트 폴더는 war 위치). 그래서 그 후에는 war을 제거하고 Kudu에 최신 war 파일을 배포 할 수 있습니다.

어떻게 하시겠습니까? 나는 파워 셸 스크립트를 사용하여 kudu에 접근하는 방법을 의미한다. 제발 제안 해주세요.

+0

DevOps 시대 이전의 모든 내용입니다. 대신 배포 슬롯을 사용하고 스테이징에 게시하고 테스트에 준비하고 Prod에 스테이징을 바꿉니다. 물건이 더 이상 보이지 않는 경우 그냥 뒤집습니다. – evilSnobu

+0

안녕하세요 피터, 당신이 주어진 위의 답변을 이해하지 못해서 VSTS의 작업 이름을 설명해 주시겠습니까? 친절하게 말해서 VSTS를 통해 kudu에 액세스하고 전쟁 백업을 수행하는 방법을 단계별로 공유합니다 (kudu의 다른 폴더로 복사).).설명 해주십시오. –

답변

0
당신이 스레드를 참조 할 수 있습니다

아래/해제 구축 VSTS에 푸른 PowerShell을 통해 쿠두의 API를 호출하는 방법을 알고 : 쿠두를 통해 파일 복사에 대해서는

Remove files and foldes on Azure before a new deploy from VSTS

, 당신은 명령 쿠두 API를 사용할 수 있습니다 (포스트/API/명령) :

Kudu REST API

업데이트 :

간단한 샘플을 Kudu API를 통해 호출합니다.

function RunCommand($dir,$command,$resourceGroupName, $webAppName, $slotName = $null){ 
     $kuduApiAuthorisationToken = Get-KuduApiAuthorisationHeaderValue $resourceGroupName $webAppName $slotName 
     $kuduApiUrl="https://$webAppName.scm.azurewebsites.net/api/command" 
     $Body = 
      @{ 
      "command"=$command; 
      "dir"=$dir 
      } 
     [email protected]($Body) | ConvertTo-Json 
     Write-Host $bodyContent 
     Invoke-RestMethod -Uri $kuduApiUrl ` 
          -Headers @{"Authorization"=$kuduApiAuthorisationToken;"If-Match"="*"} ` 
          -Method POST -ContentType "application/json" -Body $bodyContent 
    } 


RunCommand "site\wwwroot\bin\apache-tomcat-8.0.33\webapps" "copy xx.war ..\xx.war /y" "[resource group]" "[web app]" 
+0

감사합니다 MSFT.But 내 project.Just에서 구현할 수 있도록 정확한 스크립트를 제공 할 수 있습니다 그냥 아래에 kudu (https://adc-dev.scm.azurewebsites.net)에 위치한 전쟁 파일을 복사해야합니다 : \ home \ site \ wwwroot \ bin \ apache-tomcat-8.0.33 \ webapps 위치를 D : \ home \ site \ wwwroot \ bin \ apache-tomcat-8.0.33 위치로 복사하고 D : \ home에서 war 파일을 제거하십시오. \ site \ wwwroot \ bin \ apache-tomcat-8.0.33 \ webapps이 위치. 그런 다음 스크립트를 작성하는 방법 ftp.so를 사용하여 VSTS에서 새로운 전쟁을 전개 할 수 있습니다. 링크를 이해하지 못하는 정확한 스크립트를 제공하십시오. 내 수준으로. –

+0

@PDBRPRAVEEN 다른 코드에 대한 대답을 업데이트했습니다. 제공 한 스레드를 참조하십시오. –

+0

@PDBRPRAVEEN Kudu api에서이 문제를 해결했습니다. [트리거 된 웹 작업을 중단시키는 가장 좋은 방법은 무엇입니까] (https://stackoverflow.com/questions/47027845/what-is-the-best-way-to-stop-triggered) -web-jobs), Kudu API에서도이 문제를 해결할 수 있습니까? –