This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { BatchWriteCommand, DynamoDBDocumentClient, paginateScan } from '@aws-sdk/lib-dynamodb' | |
import { DynamoDBClient } from '@aws-sdk/client-dynamodb' | |
function filterKeys<T extends object>(object: T, keyPredicate: (key: string) => boolean) { | |
return object ? Object.fromEntries(Object.entries(object).filter(([key]) => keyPredicate(key))) : object | |
} | |
function selectKeys<T extends object>(object: T, keys: string[]) { | |
return filterKeys(object, (key) => keys.includes(key)) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env node | |
import 'source-map-support/register'; | |
import {App, Duration, Stack, StackProps} from 'aws-cdk-lib'; | |
import {Construct} from 'constructs'; | |
import {Code, Function, Runtime} from "aws-cdk-lib/aws-lambda"; | |
import {StateMachine} from "aws-cdk-lib/aws-stepfunctions"; | |
import {LambdaInvoke} from "aws-cdk-lib/aws-stepfunctions-tasks"; | |
import {Rule, RuleTargetInput, Schedule} from "aws-cdk-lib/aws-events"; | |
import {SfnStateMachine} from "aws-cdk-lib/aws-events-targets"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Description: CloudFront Functions Demo | |
# This example shows how to use CloudFront, CloudFront Functions, and CloudFormation. | |
# In this simple example we setup CloudFront so that on any request we redirect to another site. | |
# While basic, this example can be expanded to provide typical redirect scenarios, based | |
# on the event passed to the function. | |
# This example written by Mike Roberts (https://twitter.com/mikebroberts), Symphonia. | |
# For more ideas about using AWS more effectively,see our blog at https://blog.symphonia.io/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/chapter5-api/template.yaml b/chapter5-api/template.yaml | |
index 7c6e0a5..b47084a 100755 | |
--- a/chapter5-api/template.yaml | |
+++ b/chapter5-api/template.yaml | |
@@ -41,6 +41,13 @@ Resources: | |
Properties: | |
CodeUri: target/lambda.zip | |
Handler: book.api.WeatherQueryLambda::handler | |
+ Timeout: 300 | |
+ Layers: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AWSChatbotRole: | |
Type: AWS::IAM::Role | |
Properties: | |
RoleName: AWSChatbotRole | |
AssumeRolePolicyDocument: | |
Version: 2012-10-17 | |
Statement: | |
- Effect: Allow | |
Principal: | |
Service: 'chatbot.amazonaws.com' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Records": [ | |
{ | |
"EventSubscriptionArn": "arn:aws:sns:us-east-1::ExampleTopic", | |
"Sns": { | |
"Type": "Notification", | |
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", | |
"TopicArn": "arn:aws:sns:us-east-1:123456789012:ExampleTopic", | |
"Subject": "example subject", | |
"Message": "example message", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package io.symphonia; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
public class LoggingLambda { | |
// Configure our SLF4J Logger interface | |
private static final Logger LOG = LoggerFactory.getLogger(LoggingLambda.class); | |
public void handler(String s) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<dependencies> | |
<dependency> | |
<groupId>io.symphonia</groupId> | |
<artifactId>lambda-logging</artifactId> | |
<version>1.0.0</version> | |
</dependency> | |
</dependencies> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# CodePipeline by default runs an execution whenever any change is detected in the configured source repository | |
# We can use a CodePipeline Webhook resource to filter such executions. | |
# | |
# This is a snippet that would be part of a CloudFormation template containing | |
# a CodePipeline resource (AWS::CodePipeline::Pipeline), named CodePipeline in this case, and | |
# assumes the GutHub OAuth token is available in the parameter GitHubOAuthToken. | |
# Typically a CodePipeline Webhook only contains the $.ref filter to check for | |
# the desired branch. | |
# However we can add up to 4 more filters, each of which can query the incoming webhook payload from Github. | |
# Such payloads are of the form: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; | |
import com.amazonaws.services.dynamodbv2.document.*; | |
public class MyLambda { | |
private final DynamoDB dynamoDB; | |
private final String tableName; | |
public MyLambda() { | |
this.dynamoDB = new DynamoDB(AmazonDynamoDBClientBuilder.defaultClient()); | |
this.tableName = System.getenv("LOCATIONS_TABLE"); |
NewerOlder