Open in app

Sign In

Write

Sign In

Fabio Gollinucci
Fabio Gollinucci

3 Followers

Home

About

Jul 3

Lambda hexagonal architecture variation

Given the large number of blog articles and conference talks on the subject I wanted to do some testing myself. I started from aws-samples/aws-lambda-hexagonal-architecture repository and related blog post developing-evolutionary-architecture-with-aws-lambda. I then started adding APIs methods, events, queues and tables in order to understand how the solution scaled. Some warm…

AWS

7 min read

Lambda hexagonal architecture variation
Lambda hexagonal architecture variation
AWS

7 min read


Jun 11

Nuxt3 on Lambda

Since the Nuxt version 3 the server side engine is managed by Nitro. This engine (based on h3) can handle a variety of environments including AWS Lambda. Lambda integration The integration directly handles the Lambda function event that comes from API Gateway executing Nuxt server side rendering. HttpApi: Type: AWS::Serverless::HttpApi HttpApiFunction…

Nuxt 3

5 min read

Nuxt3 on Lambda
Nuxt3 on Lambda
Nuxt 3

5 min read


Jun 6

Build Lambda function with Makefile

Add a Metadata property to the function that you want to build in a custom way: LambdaEdgeFunction: Type: AWS::Serverless::Function Properties: [...] Metadata: BuildMethod: makefile Inside the Makefile add a command named as the function resource is prefixed by "build-": build-LambdaEdgeFunction: npm ci NITRO_PRESET=node npx nuxt build cp -r .output/ $(ARTIFACTS_DIR)/.output/ cp lambda.js $(ARTIFACTS_DIR)/lambda.js

AWS

1 min read

AWS

1 min read


Jun 6

Greengrass Nucleus Telemetry Data

Just created a very simple AWS integration that collect Greengrass Nucleus telemetry data as CloudWatch metrics. This integration will deploy a Lambda function connect to IoT Core MQTT topic where NucleusEmitter component send telemetry data: { "mqttTopic": "greengrass/MyDeviceName", "telemetryPublishIntervalMs": 300000 } The deployed Lambda function put metrics data to CloudWatch using AWS NodeJS SDK:

AWS

1 min read

Greengrass Nucleus Telemetry Data
Greengrass Nucleus Telemetry Data
AWS

1 min read


Jun 6

EventBridge CloudFormation Events

It’s possible to use EventBridge event “CloudFormation Resource Status Change” to execute code when the CloudFormation stack itself is created. This can be done describing the EventBridge event rule for a Lambda function that match the emitted event: PostScript: Type: AWS::Serverless::Function Properties: FunctionName: !Sub "${AWS::StackName}-post-script"…

AWS

1 min read

EventBridge CloudFormation Events
EventBridge CloudFormation Events
AWS

1 min read


Jun 6

CloudFormation EC2 Volume Persistence

It’s a common requirements, for application and general instance setup, to persist a disk portion. Setting aside the solution via EFS, if not require from access multiple instance (ASG), an EBS volume does its job anyway. Starting from a SAM template that describe an EBS volume: DataVolume: Type: AWS::EC2::Volume…

AWS

2 min read

CloudFormation EC2 Volume Persistence
CloudFormation EC2 Volume Persistence
AWS

2 min read


Jun 6

Vue3 VModel

The usage in a Vue component: <CustomInput v-model="searchText" /> The component: <script> export default { props: ['modelValue'], emits: ['update:modelValue'], computed: { value: { get() { return this.modelValue }, set(value) { this.$emit('update:modelValue', value) } } } } </script> <template> <input v-model="value" /> </template> The “modelValue” placeholder is for the v-model attribute. It can be any other property, for example “title”:

Vue 3

1 min read

Vue 3

1 min read


Mar 10

SAM CLI CheatSheet

The AWS Serverless Application Model (AWS SAM) is an open-source framework that you can use to build serverless applications on AWS. It is an extension of CloudFormation, you get the reliable deployment capabilities of AWS CloudFormation. You can define resources by using AWS CloudFormation in your AWS SAM template. Authentication…

AWS

10 min read

AWS

10 min read


Mar 6

Vue3 Slots

The usage in a Vue component: <FancyButton>{{ message }}</FancyButton> The component: <button type="submit"> <slot> Submit <!-- fallback content --> </slot> </button> The “modelValue” placeholder is for the v-model attribute. It can be any other property, for example “title”: <MyComponent v-model:title="bookTitle" /> Named slots The usage in a Vue component: <BaseLayout> <template #header> <h1>Here might be a page title</h1> </template> <template #default> <p>A paragraph for the main content.</p> <p>And another one.</p> </template> <template #footer> <p>Here's some contact info</p> </template> </BaseLayout>

Vue 3

1 min read

Vue 3

1 min read


Mar 3

Shell Helpers

It is common for developers and systems engineers to create aliases or shell scripts in order to reuse certain complex commands. Linux/Unix users use to create aliases in .bashrc: alias ll='ls -alF' alias la='ls -A' alias l='ls -CF or adding executable scripts into /usr/local/bin/ directory: #!/bin/bash PARAM_1=$1 echo $PARAM_1 It’s…

Bash

2 min read

Bash

2 min read

Fabio Gollinucci

Fabio Gollinucci

3 Followers

Backend Developer & Cloud Architect @ Bitbull

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech

Teams