> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Azure Storage - Habilitar/Desabilitar sFTP com Logic Apps
- URL: https://www.azurebrasil.cloud/blog/azure-storage-habilitar-desabilitar-sftp-com-logic-apps/
- Published: 2023-11-07T11:53:46.000Z
- Updated: 2023-11-07T11:53:46.000Z
- Author: Rafael dos Santos
- Tags: azure-storage

O suporte a **SSH File Transfer Protocol (SFTP)** tem sido muito utilizado desde o seu lançamento. Aqui na AzureBrasil temos alguns clientes que utilizam o modelo para simplificar o envio de arquivos dos clientes para o sistema.

[SFTP support for Azure Blob Storage - Azure StorageBlob storage now supports the SSH File Transfer Protocol (SFTP).![](https://learn.microsoft.com/favicon.ico)Microsoft Learnnormesta![](https://learn.microsoft.com/en-us/media/logos/logo-ms-social.png)](https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support?ref=azurebrasil.cloud)

O problema é que ha alguns meses o recurso passou a ser cobrado e existe até uma recomendação na documentação oficial para só deixar o SFTP habilitado quando estiver em uso, na data que escrevo o artigo (2023-07-20) o preço é de $0.30/hora aproximadamente \~$219/mês considerando a média atual do dólar de R$5,00 temos aproximadamente \~R$1.095,00 reais pelo simples fato de deixarmos o recurso habilitado 24/7.

[Azure Storage Blobs Pricing | Microsoft AzureSee pricing details for Azure Blob storage, an enterprise-grade cloud storage service for data storage. No upfront costs. Pay as you go. Try for FREE.![](https://azurecomcdn.azureedge.net/cvt-654ff0c11572f0043b19dd8da7fed50d177ba3060e149008310c11d8b38e15c1/images/icon/live-tile/azure-310x310.png)Microsoft Azure![](https://azure.microsoft.com/svghandler/storage-blobs/?width=600&height=315)](https://azure.microsoft.com/en-us/pricing/details/storage/blobs/?ref=azurebrasil.cloud)

### Automatizando o SFTP com Logic Apps

Na própria documentação temos exemplos de como fazer o enable/disable viar portal, powershell e azure cli.

[Connect to Azure Blob Storage using SFTP - Azure StorageLearn how to enable SFTP support for Azure Blob Storage so that you can directly connect to your Azure Storage account by using an SFTP client.![](https://learn.microsoft.com/favicon.ico)Microsoft Learnnormesta![](https://learn.microsoft.com/en-us/media/logos/logo-ms-social.png)](https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support-how-to?tabs=azure-cli&ref=azurebrasil.cloud)

Como eu não queria criar uma automação só para executar o script eu decidi fazer com logic apps.  
Consultando a documentação tudo o que precisamos fazer é um PATCH request para a propriedade *isSftpEnabled* que conseguimos controlar o comportamento.

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2023/07/image-8.png)

1. Definimos dois horários para executar o Logic App todos os dias, em um horário habilitamos e no outro desabilitamos.
2. Definimos o valor da variável baseado no horário da execução.
3. Executamos a chamada HTTP com autenticação via Managed Identity.

Ao invés de mostrar o passo a passo vou deixar o código do Logic App como referência, basta copiar e colar no Logic App code view e customizar as variáveis necessárias.

```json
{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "HTTP": {
                "inputs": {
                    "authentication": {
                        "audience": "https://management.azure.com",
                        "type": "ManagedServiceIdentity"
                    },
                    "body": {
                        "properties": {
                            "isSftpEnabled": "@variables('operation')"
                        }
                    },
                    "method": "PATCH",
                    "uri": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}?api-version=2022-09-01"
                },
                "runAfter": {
                    "Initialize_variable": [
                        "Succeeded"
                    ]
                },
                "type": "Http"
            },
            "Initialize_variable": {
                "inputs": {
                    "variables": [
                        {
                            "name": "operation",
                            "type": "boolean",
                            "value": "@if(equals(variables('xpto'), '08'), false, true)"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_variable_2": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_variable_2": {
                "inputs": {
                    "variables": [
                        {
                            "name": "xpto",
                            "type": "string",
                            "value": "@{convertFromUtc(utcNow(), 'E. South America Standard Time', 'HH')}"
                        }
                    ]
                },
                "runAfter": {},
                "type": "InitializeVariable"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "Recurrence": {
                "evaluatedRecurrence": {
                    "frequency": "Day",
                    "interval": 1,
                    "schedule": {
                        "hours": [
                            "6",
                            "8"
                        ],
                        "minutes": [
                            30
                        ]
                    },
                    "timeZone": "E. South America Standard Time"
                },
                "recurrence": {
                    "frequency": "Day",
                    "interval": 1,
                    "schedule": {
                        "hours": [
                            "6",
                            "8"
                        ],
                        "minutes": [
                            30
                        ]
                    },
                    "timeZone": "E. South America Standard Time"
                },
                "type": "Recurrence"
            }
        }
    },
    "parameters": {}
}
```

Pronto, com o Logic App criado podemos habilitar/desabilitar o sFTP quando desejarmos.

\[\]s e até a próxima!