Azure Functions PowerShellで blobコンテナへの書き込み
概要
気がつけばAzure FunctionsでPowershellがGAされていて、
Azure Functions の PowerShell 開発者向けガイドを読んでたら依存関係にAzライブラリの記載があったので、
Functions上でAzコマンドが使えるのか確認。
目次
- 今回やること
- 準備
- コード
- 結果
- 次にやること(予定)
今回やること
Azure Functions(PowerShell)をデプロイして、
FunctionsからAzure Storage AccountのBlobコンテナにファイルをアップロードする。
また、Azコマンドを使う際にUser/Passは使いたくないので、
Managed Identity(MSI?)でFunctionsに対して権限を付与する。
準備
コード
適当に書く。
確認をし易いようにHttpTrrigerで
適当に現在日時をBlobコンテナに書き込む
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.
(get-date) > .\date.txt
Connect-AzAccount -Identity
(Get-AzSubscription)[0]| Select-AzSubscription
$storageName = "hogehoge"
$storageAccount = Get-AzStorageAccount | ?{$_.StorageAccountName -eq $storageName}
$storageAccount | Get-AzStorageContainer | ?{$_.name -eq "logs"} |Set-AzStorageBlobContent -force -File .\date.txt
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = "end"
})
結果
結構簡単に書けたのでローカルで動かしてるPowerShellをFunctionsに移植できそう。
次にやりたいこと
- CustomRoleの作成
FunctionsにOwner権限を割り当てているので必要最低限の権限だけつけたい
- ARM templateの記述
Storageとか停止できないサービスを使うときだけ使いたい。 - Functions上でAzコマンド実行時のNW経路 調査方法の検討つかないけど、いつか確認したい。
Author And Source
この問題について(Azure Functions PowerShellで blobコンテナへの書き込み), 我々は、より多くの情報をここで見つけました https://qiita.com/TK0/items/5a821f9f29a15216f5e3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .