Skip to main content

27 posts tagged with "IaC"

View All Tags

· 4 min read
Hasan Gural

Welcome to the start of our journey with Bicep CIDR functions! This series is something I've been excited to share, offering insights into subnetting and network configurations, especially within the realm of Infrastructure as Code (IaC).

In this part, we're going to cover the basics of Bicep CIDR functions, including how they can be used and in which scenarios they are most applicable. But before we dive into the details, let's begin with a brief introduction to Bicep CIDR functions.

· 3 min read
Hasan Gural

Sadly, Azure Bicep and ARM Templates lack a built-in option for local deployment trials, particularly when your template involves variables, parameters, functions, and outputs. To test the functionality of certain functions or data structures, deploying them in Azure is still necessary. This challenge persists, meaning each time you wish to experiment with just your variables and outputs, initiating a deployment via AZ_CLI or PowerShell is required to observe the outcomes.

However, the Bicep team has been working on a new feature that will make this process much more straightforward. The new feature, known as the "Deployment Pane," is currently in preview and available in VSCode. This feature allows you to deploy your Bicep files quickly and easily, without the need to use the Azure CLI or PowerShell.

· 4 min read
Hasan Gural

Welcome back! In our previous session, we delved into the strengths of YAML as a tremendous alternative for orchestrating Azure configurations via Bicep. Today, I'll guide you through deploying Azure resources using a YAML with Bicep.

🧑‍💻 Using YAML and Bicep Together

Revisiting the previous post, you might remember our YAML file, structured as follows:

resourceGroups:
- name: "app01"
location: "westeurope"
tags:
environment: "dev"
project: "project01"

- name: "app02"
location: "northeurope"
tags:
environment: "dev"

This file lists two resource groups, app01 and app02. Each resource group has a name, location, and tags property. It's like a to-do list for our task. Now, we will write a resource block in Bicep to create these resource groups in Azure.

· 5 min read
Hasan Gural

Greetings, everyone! This blog post marks the beginning of a series dedicated to exploring how YAML can be effectively utilized in conjunction with Bicep for deploying resources on Azure. This is the first part of a series. Here, we'll start with the basics of YAML and Bicep and learn how they work together to help us with resource provisioning on Azure.

💬 Why YAML, and What Are the Options?

After our introduction to this series, you might be wondering, Why YAML? YAML, which stands for YAML Ain't Markup Language, is a human-readable data serialization standard. It is used in a variety of programming and IT contexts, but why is it so important for Azure resource deployment, particularly with Bicep? Before we dive deeper into why YAML is a great choice, let's look at the alternatives available in ARM templates or Bicep:

image

· One min read
Hasan Gural

I recently had the amazing chance to collaborate with the folks of the Café Azure Program in Turkey. In my session, I took a deep dive into the Azure Virtual Network Manager and its various components. Pleased to present my detailed demonstrations, offering practical applications and insights for everyone interested.

Café Azure

For those who missed it or want to revisit some of the highlights, here's the recording:

· One min read
Hasan Gural

Azure Custom Resource Provider kullanım örneklerini blog üzerinde uzun bir seri ile paylaşmıştık. Fakat GitHub üzerinde belirttiğim repository üzerinden devamlı bir şekilde güncel tutmaya özen göstereceğim. Eğer talep ederseniz sizde Pull Request gönderip kendi Custom Resource Provider'larınızı paylaşırsanız örnekleri tek noktada toplayabileceğimiz bir yere sahip oluruz. Daha fazlası için aşağıdaki GitHub Repository incelemenizi tavsiye ederim.

https://github.com/hasangural/CustomResourceProvider

· 6 min read
Hasan Gural

Bir önceki yazımızda Visual Studio Code üzerinde ilk fonksiyonumuzu oluşturduk. Hatırlarsanız fonksiyonumuzun adı getResourceStatus olarak belirlemiştik. Fonksiyon bize Azure sanal sunucuların hakkında anlık raporlar (html output olarak) üretmesini sağlamak temel hedefi idi. Bu fonksiyon RESTful isteklerin kabul ediyor olacak ve istediğimiz zaman abonelik içerisinde bulunan sanal sunucuların yapılandırma bilgilerini anlık ve her yerden bir web request ile raporlayabileceğiz.

Fonksiyonumuzu deploy etmeden önce bildiğiniz gibi Azure Subscription içerisine Azure Function App deploy etmemiz gerekiyor. Bunu dilerseniz Azure Portal, ARM Template, VSCode, Powershell yapabilirsiniz. Bu yazı içerisinde size aşağıdaki Powershell Script'ini takip ederek Azure Function App oluşturmanızı yardımcı olacak olan kod bloğunu paylaşıyorum.

· 6 min read
Hasan Gural

Artık ilk Event-Based Automation çözümümüzü beraber geliştirebiliriz, senaryomuzu basit ve anlaşılır yapmak için hemen beraber belirleyelim. Başlangıç seviyesi için kesinlikle basit bir senaryodan ilerleyeceğiz. Örneğin, Azure Function 'HTTP' trigger (tetikleyicisini) kullanarak parametrik olarak gönderilen sanal sunucunun adına göre Azure Function bizim için HTML bir Report oluşturmasını isteyelim. Giriş yazımızı hatırlarsanız, o kısımda 'HTTP' kullanırsak bize bir RESTful HTTP uç noktaları sunar API gibi davranacağından bahsetmiştik. Şimdi ön gereksinimlerimiz neler bunlara bir göz gezdirelim.

· 5 min read
Hasan Gural

Fonksiyonlarımız için ne tür Triggers ( tetikleyiciler) kullanabileceğimizden bahsettik ve örneklerini anlattık. Şimdi hız kesmeden Bindings (tam türkçeye çeviremiyorum. Bağlar/Bağlantılar) kavramına açmak istiyorum. Bindings size fonksiyonunuz içerisinden verilere bağlanmanız için bir yol veya yöntem için yardımcı olurlar. Bir önceki yazımızda bildiğimiz gibi Triggers ( tetikleyicilerin ) bize geliştirdiğimiz fonksiyonun hangi servisler tarafından tetiklenebileceğini söyleyebiliyorduk. Örneğin, Azure Queue Servisi ile fonksiyonunuz tetiklenmesini ( yani çalışmasını/aksiyon almasını ) sağlayabiliyoruz. Fakat bu tetiklemeden sonra Storage Queue servisinden gelen veri bizim için fonksiyonun içerisindeki parametreye atanıyor. Bindings kullanmak zorunda değiliz fakat kullanma senaryomuzu biraz daha açmak ister isek, Storage Queue'den bir mesaj geldiği zaman tetiklenecek olan Azure Fonksiyonumla beraber Storage Table tuttuğum transcation verileriminde bindings kullanarak bir parametreye atanması sağlayıp, daha sonra bu verileri karşılaştırabilir ve fonskiyonumun onun sonuca göre çalışmasını sağlayabilirim. Bindings tamamen isteğe bağlıdır. Bu yüzden karşımıza farklı Bindings türleri çıkıyor olacak. Bir önceki yazımızda herhangi bir kod yazmadan tetikleyen servise erişmemizi sağlayacağından bahsetmiştik. Bindings sayesinde yine farklı servislere kod yazmadan erişip bir parametreye atayıp veriler elde edebilir ve onları değerlendirebiliriz.