Blossom Logo Deploy your apps with Heroku-like simplicity using Blossom See Your Savings
BoltOps Logo

Tutorial

Category: Tutorial

All posts about Tutorial.

Serverless Slack Commands with Ruby: Fun with AWS Image Recognition header image

Serverless Slack Commands with Ruby: Fun with AWS Image Recognition

Axel Molina Axel Molina · February 02, 2021 · 11 min read
This post will detail the steps to get a serverless slack command running on AWS Lambda using the Jets Serverless Ruby framework. We’ll make something fun: a command that takes in a URL, scrapes all the images on the page, filters the images using AWS image recognition, and posts the filtered images to the current slack channel. For example:
Read more →
Terraform HCL Intro 8: For In and Removing Duplication header image

Terraform HCL Intro 8: For In and Removing Duplication

Tung Nguyen Tung Nguyen · October 08, 2020 · 8 min read
In the last post, we provided an introduction to the for in construct. This post provides more examples, shows local assignment, and covers how to set default attribute values. Remember, for is useful for data structure manipulation. Sometimes you may not get the data in the structure that is easy for you to work with, so understanding how to manipulate the data structure in Terraform can be quite useful.
Read more →
Terraform HCL Intro 7: For In Loop Basics header image

Terraform HCL Intro 7: For In Loop Basics

Tung Nguyen Tung Nguyen · October 07, 2020 · 10 min read
In this post, we’ll cover the Terraform for in loop construct. Though it performs looping, its primary purpose is really for manipulating data structures. You can do a few things to data structures with it:
Read more →
Terraform HCL Intro 5: Loops with Dynamic Block header image

Terraform HCL Intro 5: Loops with Dynamic Block

Tung Nguyen Tung Nguyen · October 05, 2020 · 15 min read
In the previous post, we established loop fundamentals. The loops were pretty basic, though. We were only able to assign a single attribute for each resource per iteration. In this post, we’ll learn how to assign multiple attributes per iteration.
Read more →
Terraform HCL Intro 4: Loops with Count and For Each header image

Terraform HCL Intro 4: Loops with Count and For Each

Tung Nguyen Tung Nguyen · October 04, 2020 · 12 min read
In this post, we’ll cover Terraform looping constructs. Terraform is declarative, so it’s looping structure may seem weird to those used to procedural programming loops. There are a few ways to performing looping with Terraform. We’ll cover the looping constructs that specifically work at the resource level. They handle resource creation itself. There are two of them:
Read more →
Terraform HCL Intro 3: Conditional Logic header image

Terraform HCL Intro 3: Conditional Logic

Tung Nguyen Tung Nguyen · October 03, 2020 · 6 min read
In this post, we’ll cover how to perform conditional logic with Terraform. It’ll be a little weird looking for those who are not used to the Terraform declarative syntax. There are only a few ways to do conditional logic with Terraform:
Read more →
Terraform HCL Intro 2: Function Analogy header image

Terraform HCL Intro 2: Function Analogy

Tung Nguyen Tung Nguyen · October 02, 2020 · 5 min read
In this post, we’ll review the basic Terraform building blocks from the previous post, Terraform HCL Intro 1: Resources, Variables, Outputs, and compare them to a “function”. This is a contrived analogy, but folks find it helpful. You’ll also learn about Terraform locals.
Read more →
Terraform HCL Intro 1: Resources, Variables, Outputs header image

Terraform HCL Intro 1: Resources, Variables, Outputs

Tung Nguyen Tung Nguyen · October 01, 2020 · 7 min read
This is the start of a series of posts to help introduce and learn the Terraform HCL language. It is written for those with an elementary understanding of programming already. This allows us to cover things effectively instead of being stuck in the weeds.
Read more →
CloudWatch Log Tips: Jets AWS Introduction Series Part 5 header image

CloudWatch Log Tips: Jets AWS Introduction Series Part 5

Tung Nguyen Tung Nguyen · July 03, 2020 · 1 min read
In this video, we’ll go over some CloudWatch Log tips. These tips will be useful for someone new to CloudWatch logs and show you how to use CloudWatch logs effectively. The biggest tip here is to click on the “Search” button immediately after clicking on a Log Group. Don’t bother clicking on individual streams and trying to find the exact AWS Lambda function.
Read more →
CloudWatch Event Rules and AWS Lambda with Ruby on Jets header image

CloudWatch Event Rules and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · June 17, 2019 · 2 min read
In this video tutorial, we’ll cover CloudWatch Event Rules and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll explain what CloudWatch Event Rules are. Then we’ll build a Jets project from scratch with the rule_event declaration. We’ll deploy the application and test the rule event. We’ll show you how simple it is to get started with Ruby on Jets and CloudWatch Event Rules.
Read more →
CloudWatch Log Events and AWS Lambda with Ruby on Jets header image

CloudWatch Log Events and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · May 16, 2019 · 1 min read
In this video tutorial, we’ll cover CloudWatch Log Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll build a Jets project from scratch with the log_event declaration. We’ll deploy the application and test the CloudWatch Log event. We’ll show you how simple it is to get started with Ruby on Jets and CloudWatch Log Events.
Read more →
DynamoDB Stream Events and AWS Lambda with Ruby on Jets header image

DynamoDB Stream Events and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · March 06, 2019 · 1 min read
In this video tutorial, we’ll cover DynamoDB Stream Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll build a Jets project from scratch with the dynamodb_event declaration. We’ll deploy the application and test the DynamoDB event. We’ll show you how simple it is to get started with Ruby on Jets and DynamoDB Stream Events.
Read more →
Kinesis and AWS Lambda with Ruby on Jets header image

Kinesis and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · March 04, 2019 · 2 min read
In this video tutorial, we’ll cover Kinesis Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll build a Jets project from scratch with the kinesis_event declaration. We’ll deploy the application and test the Kinesis event. We’ll show you how simple it is to get started with Ruby on Jets and Kinesis Events.
Read more →
SNS Events and AWS Lambda with Ruby on Jets header image

SNS Events and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · February 27, 2019 · 1 min read
In this video tutorial, we’ll cover SNS Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll explain what SNS Event are. Then we’ll build a Jets project from scratch with the sns_event declaration. We’ll deploy the application and test the SNS event. We’ll show you how simple it is to get started with Ruby on Jets and SNS Events.
Read more →
SQS Events and AWS Lambda with Ruby on Jets header image

SQS Events and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · February 25, 2019 · 1 min read
In this video tutorial, we’ll cover SQS Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll build a Jets project from scratch with the sqs_event declaration. Essentially creating an autoscaling worker processing tier. We’ll deploy the application and test the SQS event. We’ll show you how simple it is to get started with Ruby on Jets and SQS Events.
Read more →
S3 Events and AWS Lambda with Ruby on Jets header image

S3 Events and AWS Lambda with Ruby on Jets

Tung Nguyen Tung Nguyen · February 22, 2019 · 2 min read
In this video tutorial, we’ll cover S3 Events and how to connect them up to AWS Lambda Functions with Ruby on Jets. We’ll explain what S3 Events are. We’ll discuss the design approach that Jets took by adding an SNS topic to the flow. Then we’ll build a Jets project from scratch with the s3_event declaration. We’ll deploy the application and test the s3 event. We’ll show you how simple it is to get started with Ruby on Jets and S3 Events.
Read more →
API Gateway: Jets AWS Introduction Series Part 2 header image

API Gateway: Jets AWS Introduction Series Part 2

Tung Nguyen Tung Nguyen · February 05, 2019 · 1 min read
In this video, we’ll walk through creating an API Gateway REST API from scratch manually. Just getting familiar with the API Gateway console is an excellent way to learn how simple it is for those who are new to API Gateway and trying it out for the first time. We talk a little bit about Jets and how config/routes.rb essentially maps to API Gateway resources, but the focus is really on API Gateway console. This simple exercise will help understand what Jets does for you. This post is a part of an introductory series for people who are new to API Gateway and Serverless.
Read more →
Jets Tutorial: jets delete header image

Jets Tutorial: jets delete

Tung Nguyen Tung Nguyen · November 12, 2018 · 2 min read
This video tutorial demos the jets delete command. Since all the infrastructure is codified, deleting a Jets application is a straightforward process. What’s more interesting is that it is also easy to recreate the entire environment. jets delete For more info on the jets delete command, refer to its CLI reference.
Read more →
Jets Tutorial Different Environments Part 8: AWS Lambda Ruby header image

Jets Tutorial Different Environments Part 8: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 26, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We talk about the difference between Jets extra vs different environments. Different environments refer to development, staging, uat, production environments. Extra environments refer to instances of each of those environments. For example, development-1, development-2, development-3, etc.
Read more →
Jets Tutorial Extra Environments Part 7:  AWS Lambda Ruby header image

Jets Tutorial Extra Environments Part 7: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 13, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We talk about a Jets concept called extra environments. With one environment variable JETS_ENV_EXTRA, we can create as many additional instances of environments as we wish. This helps when multiple people are asking to use the development, staging, or uat environment but cannot because it is currently used by someone else or another feature. Usually, you end up having to wait until the environment free. With this Jets concept you can create as many environments as required.
Read more →
Jets Tutorial Function Properties Part 6: AWS Lambda Ruby header image

Jets Tutorial Function Properties Part 6: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 12, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll demonstrate how to customize the properties associated with the Lambda functions that Jets creates. There are 3 ways to set function properties with Jets: at the function level, class level or application level. We’ll also explore the AWS Lambda console and shows how the Lambda function properties connect with Jets.
Read more →
Jets Tutorial IAM Policies Part 5: AWS Lambda Ruby header image

Jets Tutorial IAM Policies Part 5: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 11, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll demonstrate how to customize the IAM policies and roles associated with Jets Lambda functions. IAM policies are important because they handle securing access to your AWS resources so it’s worth learning them. Jets provides you with fine-grain control over the IAM permissions at the function, class, and application level.
Read more →
Jets Tutorial Background Jobs Part 4: AWS Lambda Ruby header image

Jets Tutorial Background Jobs Part 4: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 10, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll cover background jobs in this video. Using background jobs is a typical pattern that offloads processing outside of the web request-response cycle. Users will not wait for web pages to load if it takes too long, so background jobs are an excellent technique to keep slower work outside of the request cycle.
Read more →
Jets Tutorial Debugging Logs Part 3: AWS Lambda Ruby header image

Jets Tutorial Debugging Logs Part 3: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 09, 2018 · 2 min read
In this video, we continue the tutorials on the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll cover something that is pretty important to know as a software developer: debugging. With Jets it’s pretty straightforward to look at the debugging logs both locally and remotely. Locally, the logs show up with the local running server. Remotely, the logs show up in CloudWatch Logs: available both on the AWS CloudWatch Logs console and the AWS Lambda console.
Read more →
Jets Tutorial Deploy to AWS Lambda Part 2: AWS Lambda Ruby header image

Jets Tutorial Deploy to AWS Lambda Part 2: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 08, 2018 · 2 min read
In this video tutorial, we continue how to get to started with the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll explore the AWS Lambda Console and API Gateway to show how the AWS resources map back to Jets application code.
Read more →
Jets Tutorial An Introductory CRUD App Part 1: AWS Lambda Ruby header image

Jets Tutorial An Introductory CRUD App Part 1: AWS Lambda Ruby

Tung Nguyen Tung Nguyen · September 07, 2018 · 2 min read
In this video tutorial, we cover how get to started with the Jets Ruby Serverless Framework that adds Ruby support to AWS Lambda. We’ll build the quintessential CRUD application, and more we’ll importantly explore and edit it to understand how it works. Here’s the link to the Live CRUD Demo.
Read more →
UFO and ECS Fargate Introduction Tutorial header image

UFO and ECS Fargate Introduction Tutorial

Tung Nguyen Tung Nguyen · July 11, 2018 · 6 min read
This is an introductory guide to ufo, an ECS deployment tool, with AWS Fargate. Ufo helps you deploy Docker images to AWS ECS. With Fargate, you can run docker containers without having to manage servers, for an interesting “serverless” option.
Read more →
Docker Intro Tutorial: Common Commands Crash Course header image

Docker Intro Tutorial: Common Commands Crash Course

Tung Nguyen Tung Nguyen · April 19, 2018 · 9 min read
Docker is kind of like git in a sense that there are only a few commands to learn to for it be useful. This tutorial focuses on the docker commands that I find myself most commonly use. This article assumes that you have a general idea of what docker is and have it installed and set up already. Hopefully, it serves as handy reference or cheatsheet for useful common docker commands.
Read more →
How AWS VPC Works Intro header image

How AWS VPC Works Intro

Tung Nguyen Tung Nguyen · September 12, 2017 · 1 min read
I’ll provide a basic introduction to the mysterious VPC world. I’ll explain terms using various diagrams. We’ll also build a simple VPC network out manually to help understand VPCs.
Read more →
Gentle Introduction to How AWS ECS Works with Example Tutorial header image

Gentle Introduction to How AWS ECS Works with Example Tutorial

Tung Nguyen Tung Nguyen · September 09, 2017 · 10 min read
ECS is the AWS Docker container service that handles the orchestration and provisioning of Docker containers. This is a beginner level introduction to AWS ECS. I’ve seen some nightmare posts and some glowing reviews about the ECS service, so I knew it was going to interesting to get my hands dirty and see what ECS was all about.
Read more →
AWS ECS Terms Introduction Tutorial header image

AWS ECS Terms Introduction Tutorial

Tung Nguyen Tung Nguyen · September 08, 2017 · 2 min read
Task Definition — This a blueprint that describes how a docker container should launch. If you are already familiar with AWS, it is like a LaunchConfig except instead it is for a docker container instead of an instance. It contains settings like exposed port, docker image, CPU shares, memory requirement, the command to run and environmental variables. Task — This is a running container with the settings defined in the Task Definition. It can be thought of as an “instance” of a Task Definition. Service — Defines long-running tasks of the same Task Definition. This can be one running container or multiple running containers all using the same Task Definition. Cluster — A logic group of EC2 instances. When an instance launches the ecs-agent software on the server registers the instance to an ECS Cluster. This is easily configurable by setting the ECS_CLUSTER variable in /etc/ecs/ecs.config described here. Container Instance — This is just an EC2 instance that is part of an ECS Cluster and has docker and the ecs-agent running on it.
Read more →
A Simple Introduction to AWS CloudFormation Part 4: Change Sets = Dry Run Mode header image

A Simple Introduction to AWS CloudFormation Part 4: Change Sets = Dry Run Mode

Tung Nguyen Tung Nguyen · April 07, 2017 · 5 min read
UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course. I am a big fan of AWS CloudFormation because it gives you the power to codify the infrastructure and provision it in a repeatable way. One thing that I’ve always wished that CloudFormation had was the ability to see the what changes would be applied ahead of time before hitting that update-stack button. Who wants to hit a big scary red button without knowing what is about to happen? I don’t.
Read more →
A Simple Introduction to AWS CloudFormation Part 3: Updating a Stack header image

A Simple Introduction to AWS CloudFormation Part 3: Updating a Stack

Tung Nguyen Tung Nguyen · March 24, 2017 · 3 min read
UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course. In the last 2 stories, we created an EC2 instance and a Route53 record successfully with CloudFormation. We have yet to walk through the useful update-stack command though. In this post, we’ll use the 2 templates created in the first 2 posts to play around with the update-stack command.
Read more →
A Simple Introduction to AWS CloudFormation Part 2: EC2 Instance and Route53 header image

A Simple Introduction to AWS CloudFormation Part 2: EC2 Instance and Route53

Tung Nguyen Tung Nguyen · March 20, 2017 · 4 min read
UPDATE 2022/8/12: Check out the improved CloudFormation Fundamentals Introductory Course. This is a continuation of A Simple Introduction to AWS CloudFormation. We will build on top of the first simple CloudFormation template from Part 1, which provisions an EC2 instance and Security Group. We will add to it a Route53 record that points to the EC2 instance’s DNS public hostname. This demonstrates CloudFormation’s ability to “orchestrates” the components of the stack. CloudFormation will wait until the EC2 instance’s DNS public hostname is ready and then create the Route53 record pointing to it.
Read more →
A Simple Introduction to AWS CloudFormation Part 1: EC2 Instance header image

A Simple Introduction to AWS CloudFormation Part 1: EC2 Instance

Tung Nguyen Tung Nguyen · March 06, 2017 · 8 min read
The easiest way to describe what CloudFormation is that it is a tool from AWS that allows you to spin up resources effortlessly. You define all the resources you want AWS to spin up in a blueprint document, click a button, and then AWS magically creates it all. This blueprint is called a template in CloudFormation speak.
Read more →
Blossom Logo
Deploy Your Apps with Ease

Blossom lets you deploy to your own servers with Heroku-like simplicity. Connect any cloud provider and we'll handle the rest. Save time and money with Blossom.

BoltOps Blog
Join a group of good-looking folks who get free email updates from BoltOps.