In Pulumi, when calling pulumi_azure_native.storage.list_storage_account_service_sas_output() to generate a SAS, you pass the required permissions to the permissions: Input[str | Permissions | None] parameter. pulumi_azure_native.storage.Permissions is an enum, offering simple selections (R, L etc.): But you can also pass a string of permissions, any of R, L, D, W, C, A, or P, depending on the Continue reading →
Another note for myself. I wanted to use this to give my app access to the entire account. I thought they would be a property of pulumi_azure_native.storage.StorageAccount but they’re not. Instead you need to call pulumi_azure_native.storage.list_storage_account_keys(). Continue reading →
In a storage account, you can create a SAS scoped to a specific container, however, that SAS does not have permission to execute BlobClient.exists() as this requires at least list privileges on the parent object (e.g. the account), and when you try to perform the check, you’ll get this error: Note that this is an Continue reading →
This post is mainly a reminder to myself, because i’ve made the same mistake a few times in different projects. How and why to deploy Azure functions from a package When using Azure Functions, you can simplify deployment and maintenance of your function by deploying from a package file rather than directly in to the Continue reading →
Another post which is more to remind me than anything else. When creating an Azure Function in Pulumi, you may get the following error: Cannot modify this site because another operation is in progress After a bit of digging, i found this issue on the Pulumi repo, which points to a page on the Azure Continue reading →
When uploading images to WordPress, you may get this error. There are plenty of blogs online offering solutions, but they only apply to self-hosted instances – mine is hosted on just-what-i-find.onyx-sites.io/. The error is a little pop up with the text The response is not a valid JSON response at the bottom of the screen Continue reading →
In a previous post, I created a Barman backup script to back up PostgreSQL running in an VM to AWS S3. If you host your PostgreSQL server in Azure, this can get expensive quickly because you pay egress bandwidth fees to Microsoft. In this article, i’ll show you how to use Azure Blob storage instead. Continue reading →
In my previous post, I showed how to automate backups of a PostgreSQL database to S3 using Barman and barman-cloud-backup. Step 1: verify hardware architecture and PostgreSQL version For a successful restore, Barman requires that the hardware architecture and PostgreSQL version are both identical. You can verify these with some simple terminal commands: Run these Continue reading →
I was surprised not to find many up to date instructions on this. I have a few basic requirements: After a bit of playing around, I decided to use Barman for the backups – it’s significantly easier to configure and use than pgBackRest and has native support for backing up to S3, point-in-time restore, and Continue reading →
I’ve been using timescale.com for about a year, but it’s quite expensive for a hobbyist (their cheapest plan in the UK is about $50/month), so I thought i’d try and implement something cheaper. I know i won’t get the cool automatic DR failover or the sexy continuous backups – but it’s not really mission critical Continue reading →
I’m rob. I spend my time exploring the world, playing board games with my family, solving complex technical problems, and learning new things. Sometimes i write about them here, or code them on GitHub. I believe a few things that guide what I do and how I do it: