自动化Azure Blob SFTP(启用-禁用)

kninwzqo  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(120)

我们有一个非常具体的文件,每周一次,在1小时的窗口。我们一直在使用Azure SFTP作为一个经济高效的解决方案,今年早些时候他们改变了计费,所以我们不得不每周手动打开/关闭它,以避免24/7运行的240美元以上的成本。我们希望将此操作自动化,以便每周启用和禁用一次。
我一直在试图找出一种方法来自动启用/禁用blob功能,但还没有能够找到任何方法来做到这一点与权力自动化或azure自动化。我不能是唯一一个想这么做的人...可以在Azure自动化中运行Azure CLI PowerShell吗?我在微软文档中找不到明确的答案。有没有人找到一种方法来做到这一点?
理想情况下,我可以在azure automation powershell runbook中运行az命令。

az storage account update -g $resourceGroupName -n $stoAccountName --enable-sftp=true

字符串
一个小时后运行false,但似乎没有执行。
Jorge写了一篇关于SFTP的CLI的优秀文章,其中包含所有命令。
https://www.jorgebernhardt.com/azure-storage-blobs-enable-sftp-support/
不知道从这里去哪里。

fcwjkofz

fcwjkofz1#

可以,您可以在PowerShell Runbook中使用Azure CLI命令。
创建Azure自动化帐户。


的数据
创建一个runbook并给予命令来启用sftp,然后在一小时后禁用。以便可以每周安排一次此Runbook。



命令:

Connect-AzAccount

# Set the required variables
$resourceGroupName = "myrg"
$storageAccountName = "Staccn"

# Enable SFTP
az storage account update -g $resourceGroupName -n $storageAccountName --enable-sftp true

# Wait for one hour
Start-Sleep -Seconds 3600

# Disable SFTP
az storage account update -g $resourceGroupName -n $storageAccountName --enable-sftp false

字符串
链接计划表以安排时间。



给予所需时间

和调度

参考:Manage schedules in Azure Automation | Microsoft Learn

bjg7j2ky

bjg7j2ky2#

我试着按照@kavyaS的答案,但也遇到了与OP相同的“socket operation encountered a dead network”错误。
我通过允许我的托管身份访问其他资源来获得更多:

#give the system-assigned managed identity permission to access resources in other resource groups

MyAutomationAccount -> Identity -> System Assigned tab
Click "Azure Role Assignments" -> Add Role Assignment
  Scope: Subscription
  Subscription: MySubscription
  Role: Contributor
  Save

字符串
我将Connect-AzAccount更改为Connect-AzAccount -Identity并成功,但az命令失败。我用Set-AzStorageAccount -EnableSftp $true替换了它们,但由于我的Powershell版本是5.1,所以失败了。我删除了我的Runbook,在7. 2版本中做了一个新的,并让它工作起来。
我是这样做的:

#create a runbook to run the commands to switch the SFTP on

MyAutomationAccount -> Runbooks
Click "Create a Runbook"
  Name: blob-storage-sftp-enable
  Type: Powershell
  Version: 7.2
  Description: Enables SFTP on the Blob Storage account

$resourceGroupName = "my-resource-group-name"
$storageAccName = "my-storage-account-name"
Connect-AzAccount -Identity
Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccName -EnableSftp $true


然后做了一个类似的关闭SFTP的动作。

相关问题