Azure Functions for PowerShell을 사용하여 Azure 작업을 시도했습니다.

Windows Virtual Desktop 제어를 Power Apps에서 수행하려고 했으므로 Azure 작업을 PowerShell에서 작동할 수 있는 Azure Automation을 사용했지만, 프로덕션에는 견딜 수 없는 것으로 나타났습니다.
원래 Azure Automation은 배치 처리 같은 자동 운용을 위한 서비스군요.
그러므로 Azure Automation에 실행 요청을 던져도 즉시 실행되지 않고 큐를 기다린 다음 큐가 실행되어 처음으로 처리가 실행됩니다.
빠를 때는 적당히 빠릅니다만(그래도 2분 정도 기다린다), 늦을 때는 4~5분 기다리는 것도 자라.
사용자 조작에 대한 응답이 이것이라면 솔직히 사용되지 않습니다.

그래서 요청 후 즉시 실행 가능하고 PowerShell이 ​​가능한 Azure Functions for PowerShell을 사용해보기로 결정했습니다.

Azure Function for PowerShell 만들기





이제 런타임 스택을 PowerShell Core로 지정합니다.



나머지는 Azure Functions를 정상적으로 만드는 것과 같습니다.



함수 만들기



함수 작성도 Python 등과 동일합니다.
VS Code를 환경으로 만들 수도 있습니다.
포털에서 직접 개발할 수도 있습니다.



템플릿도 풍부하게 존재합니다.



만약 HTTP trigger 를 지정하면(자), 이하와 같이 자동 생성됩니다.

run.ps1
using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

# Interact with query parameters or the body of the request.
$name = $Request.Query.Name
if (-not $name) {
    $name = $Request.Body.Name
}

$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."

if ($name) {
    $body = "Hello, $name. This HTTP triggered function executed successfully."
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body = $body
})


Azure 인증



PowerShell에서 다양한 작업을 수행하려면 먼저 Azure에서 인증을 받아야 합니다.

Azure Funtions는 관리형 ID를 사용하여 Azure RBAC를 사용하여 인증할 수 있습니다.

기본값은 꺼져 있으므로 여기를 활성화합니다.



그런 다음 작업하려는 리소스에 Azure 역할을 할당하면 런타임에 자동 인증되고 액세스 권한이 부여됩니다.

그리고는・・・



PowerShell을 원하는 대로 작성하면 Azure 작업을 자유롭게 수행할 수 있습니다.

CI/CD도 물론 할 수 있다!



배포 센터에서 다양한 리포지토리를 선택하여 CI/CD를 만들 수도 있습니다!



물론 Azure Devops Pipeline에서 리포지토리 업데이트를 트리거로 자동으로 빌드되어 배포가 완료됩니다!







Windows Virtual Desktop은 Power Apps를 사용하여 작동할 수 있습니다!
이것은 Azure Functions for PowerShell 덕분입니다.

#WVD 의 기동 정지 제어, 및 세션 상태의 취득을 #PowerApps 를 사용해 할 수 있도록 한 것을 동영상으로 했습니다! 실제의 조작 처리를 #AzureFunctions 로 변경하는 것으로, 꽤 실용적인 속도로 할 수 있었습니다! ! 또한 Azure Functions 코드는 PowerShell로 작성되었습니다! ※2.5배속입니다 피 c. 라고 r. 코 m/49응 P7 아메우 C — 리나타무 MVP 🇯🇵 | Ryota Nakamura

좋은 웹페이지 즐겨찾기