Vinnie  Erdman

Vinnie Erdman

1625160240

AWS CDK V2 and Go (Golang) Support!! CDK News 2021

Welcome to the first segment of CDK NEWS!

In this episode, we’re going to discuss the newest features that come from AWS CDK V2, which was announced on April 30th, 2021.

We’ll dive into:

  • The latest updates
  • Construct updates
  • Checking out the newest programming language support, Go, in VS Code

FOLLOW ME EVERYWHERE

Twitter: https://twitter.com/TheNJDevOpsGuy​​​…​
Website: https://www.michaellevan.net/​​​​​

#cdk #aws #aws cdk v2

What is GEEK

Buddha Community

AWS CDK V2 and Go (Golang) Support!! CDK News 2021
Vinnie  Erdman

Vinnie Erdman

1625160240

AWS CDK V2 and Go (Golang) Support!! CDK News 2021

Welcome to the first segment of CDK NEWS!

In this episode, we’re going to discuss the newest features that come from AWS CDK V2, which was announced on April 30th, 2021.

We’ll dive into:

  • The latest updates
  • Construct updates
  • Checking out the newest programming language support, Go, in VS Code

FOLLOW ME EVERYWHERE

Twitter: https://twitter.com/TheNJDevOpsGuy​​​…​
Website: https://www.michaellevan.net/​​​​​

#cdk #aws #aws cdk v2

Fannie  Zemlak

Fannie Zemlak

1599854400

What's new in the go 1.15

Go announced Go 1.15 version on 11 Aug 2020. Highlighted updates and features include Substantial improvements to the Go linker, Improved allocation for small objects at high core counts, X.509 CommonName deprecation, GOPROXY supports skipping proxies that return errors, New embedded tzdata package, Several Core Library improvements and more.

As Go promise for maintaining backward compatibility. After upgrading to the latest Go 1.15 version, almost all existing Golang applications or programs continue to compile and run as older Golang version.

#go #golang #go 1.15 #go features #go improvement #go package #go new features

Go-aws-news: Go App + Library to Fetch What's New From AWS

go-aws-news

Fetch what's new from AWS and send out notifications on social sites. 

App Install

go-aws-news can be executed as an application that sends out notifications to social sites like Discord. To configure providers, modify the config.yaml file to enable a provider.

go-aws-news is designed to be run on a schedule, once a day (displaying the previous day's AWS News). See the install options for examples on how to install and run.

Notification Providers

Currently supported providers:

Install Options

Install With Crontab

The simplest way to run go-aws-news is via crontab.

Type crontab -e on Mac or Linux and add a line:

# Binary
0 2 * * * /path/to/go-aws-news-binary
# Docker
0 14 * * * docker run -d --rm --name aws-news \
  -v your_config.yaml:/config.yaml \
  circa10a/go-aws-news

The above example will execute go-aws-news at 2PM UTC (8AM CST) each day.

Install As Kubernetes CronJob

go-aws-news can be run as a CronJob in a Kubernetes cluster.

Example cronjob.yaml:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: go-aws-news
spec:
  schedule: "0 14 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: go-aws-news
            image: circa10a/go-aws-news
            volumeMounts:
            - name: config
              mountPath: /config.yaml
              subPath: config.yaml
          volumes:
          - name: config
            configMap:
              name: awsnews-config
          restartPolicy: OnFailure

The ConfigMap can be created from the config.yaml file itself:

kubectl create configmap awsnews-config --from-file=config.yaml

To apply the cronjob.yaml example above:

kubectl apply -f cronjob.yaml

Install As AWS Lambda

Setup provider config in AWS SSM Parameter Store:

aws ssm put-parameter --type SecureString --name go-aws-news-config --value "$(cat config.yaml)"

Note: Overriding the name go-aws-news-config will require an environment variable on the lambda function: GO_AWS_NEWS_CONFIG_NAME.

Create the Lambda execution role and add permissions:

aws iam create-role --role-name go-aws-news-lambda-ex --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'

aws iam attach-role-policy --role-name go-aws-news-lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
aws iam attach-role-policy --role-name go-aws-news-lambda-ex --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess

Create the lambda function:

make lambda-package
aws lambda create-function --function-name go-aws-news --zip-file fileb://bin/lambda.zip --runtime go1.x --handler awsnews \
  --role $(aws iam get-role --role-name go-aws-news-lambda-ex --query Role.Arn --output text)

Create a schedule for the lambda:

aws events put-rule --schedule-expression "cron(0 14 * * ? *)" --name go-aws-news-cron

LAMBDA_ARN=$(aws lambda get-function --function-name go-aws-news --query Configuration.FunctionArn)
aws events put-targets --rule go-aws-news-cron --targets "Id"="1","Arn"=$LAMBDA_ARN

Allow the lambda function to be invoked by the schedule rule:

EVENT_ARN=$(aws events describe-rule --name go-aws-news-cron --query Arn --output text)

aws lambda add-permission --function-name go-aws-news --statement-id eventbridge-cron \
  --action 'lambda:InvokeFunction' --principal events.amazonaws.com --source-arn $EVENT_ARN

Module Install

go-aws-news can be installed as a module for use in other Go applications:

go get -u "github.com/circa10a/go-aws-news/news"

Module Usage

Methods return a slice of structs which include the announcement title, a link, and the date it was posted as well an error. This allows you to manipulate the data in whichever way you please, or simply use Print() to print a nice ASCII table to the console.

Get Today's news

package main

import (
  awsnews "github.com/circa10a/go-aws-news/news"
)

func main() {
    news, err := awsnews.Today()
    if err != nil {
      // Handle error
    }
    news.Print()
}

Get Yesterday's news

news, _ := awsnews.Yesterday()

Get all news for the month

news, _ := awsnews.ThisMonth()

Get from a previous month

// Custom timeframe(June 2019)
news, err := awsnews.Fetch(2019, 06)

Get from a previous year

// Custom timeframe(2017)
news, err := awsnews.FetchYear(2017)

Print out announcements

news, _ := awsnews.ThisMonth()
news.Print()
// Console output
// +--------------------------------+--------------+
// |          ANNOUNCEMENT          |     DATE     |
// +--------------------------------+--------------+
// | Amazon Cognito now supports    | Jan 10, 2020 |
// | CloudWatch Usage Metrics       |              |
// +--------------------------------+--------------+
// | Introducing Workload Shares in | Jan 10, 2020 |
// | AWS Well-Architected Tool      |              |
// +--------------------------------+--------------+
//

Loop over news data

// Loop slice of stucts of announcements
// For your own data manipulation
news, _ := awsnews.Fetch(time.Now().Year(), int(time.Now().Month()))
for _, v := range news {
    fmt.Printf("Title: %v\n", v.Title)
    fmt.Printf("Link: %v\n", v.Link)
    fmt.Printf("Date: %v\n", v.PostDate)
}

Limit news results count

news, _ := awsnews.ThisMonth()
// Last 10 news items of the month
news.Last(10).Print()

Get news as JSON

news, _ := awsnews.ThisMonth()
json, jsonErr := news.JSON()
if jsonErr != nil {
    log.Fatal(err)
}
fmt.Println(string(json))

Get news as HTML

news, _ := awsnews.ThisMonth()
html := news.HTML()
fmt.Println(html)

Get news about a specific product

news, err := awsnews.Fetch(2019, 12)
if err != nil {
    fmt.Println(err)
} else {
    news.Filter([]string{"EKS", "ECS"}).Print()
}

Google Assistant

Development

Test

# Unit/Integration tests
make
# Get code coverage
make coverage

Author: Circa10a
Source Code: https://github.com/circa10a/go-aws-news 
License: MIT license

#go #golang #aws 

Go-web-workshop: Build Web Applications with Go on App Engine

Building Web Applications with Go

Welcome, gopher! You're not a gopher? Well, this workshop is for gophers, or people that use the Go programming language. But fear not if you've never written any Go before! I'd recommend you learn the basics for the language first with the Go tour.

This workshop has been run a couple of times with an instructor leading. The goal of this repo is to make it as easy as possible for individuals to follow the content by themselves. If you get stuck at any point, feel free to file issues asking questions.

Setting up your workspace

To go through this you will need the following:

  1. You have installed the Go Programming Language.
  2. You have set up a GOPATH by following the How to Write Go Code tutorial.
  3. You are somewhat familiar with the basics of Go. (The Go Tour is a pretty good place to start)
  4. You have a Google account and you have installed the Google Cloud SDK.

Contents

There's a lot to say about how to build web applications, in Go or any other language. But we only have one day so we won't try to cover too much. Instead we'll cover the basics, so you'll be able to explore other solutions and frameworks later.

The workshops is divided in eleven sections:

Resources

These are places where you can find more information for Go:

My favorite aspect of Go is its community, and you are now part of it too. Welcome!

As a newcomer to the Go community you might have questions or get blocked at some point. This is completely normal, and we're here to help you. Some of the places where gophers tend to hang out are:

Disclaimer

This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

Author: Campoy
Source Code: https://github.com/campoy/go-web-workshop 
License: Apache-2.0 license

#go #golang #web 

Rory  West

Rory West

1620872502

Top 8 Exciting AWS Projects & Ideas For Beginners [2021]

AWS Projects & Topics

Looking for AWS project ideas? Then you’ve come to the right place because, in this article, we’ve shared multiple AWS projects. The projects are of various sectors and skill-levels so you can choose according to your expertise and interests. The more projects you have in your portfolio, the better. Companies are always on the lookout for skilled AWS Developers who can develop innovative AWS projects. So, if you are a beginner, the best thing you can do is work on some top AWS projects.

We, here at upGrad, believe in a practical approach as theoretical knowledge alone won’t be of help in a real-time work environment. In this article, we will be exploring some interesting AWS projects which beginners can work on to put their knowledge to test. In this article, you will find top AWS projects for beginners to get hands-on experience on Java.

Amid the cut-throat competition, aspiring AWS Developers must have hands-on experience with real-world AWS projects. In fact, this is one of the primary recruitment criteria for most employers today. As you start working on AWS projects, you will not only be able to test your strengths and weaknesses, but you will also gain exposure that can be immensely helpful to boost your career.

#aws #aws developer #aws project ideas #aws projects #aws