baseline_lab_flashcards

(78 cards)

1
Q

Composite Key (DynamoDB)

A

A primary key made of two parts: partition key + sort key. Lets you group related items under one partition key and query specific items with the sort key. Example: FlowName (partition) + PromptName (sort) lets you pull all prompts for one flow or one specific prompt. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Partition Key

A

The first part of a DynamoDB key that determines which physical partition stores the item. All items with the same partition key are stored together. In the Likewize pattern: FlowName is the partition key so all prompts for a flow live together. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sort Key

A

The second part of a composite key that orders items within a partition. Enables range queries like ‘get all items where sort key begins with X’. In the Likewize pattern: PromptName is the sort key so you can query individual prompts or all prompts for a flow. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

DynamoDB Query vs Scan

A

Query targets a specific partition key and optionally filters by sort key - fast and efficient. Scan reads every item in the entire table - slow and expensive. Always design your keys so you can Query instead of Scan. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

DynamoDB Item

A

A single record in a DynamoDB table, similar to a row in a relational database. Each item is a collection of attributes. In the prompts table, one item = one prompt with its text, category, active status, etc. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

DynamoDB Attribute

A

A single data element within an item - like a column value in a relational database. Can be strings, numbers, booleans, lists, or maps. Example attributes: PromptText_en, IsActive, Order. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Provisioned vs On-Demand Capacity

A

Two billing modes for DynamoDB. Provisioned: you set read/write capacity units upfront and pay for that capacity. On-Demand: pay per request with no capacity planning. On-Demand is simpler for dev/lab work, Provisioned is cheaper at predictable scale. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

DynamoDB GetItem

A

API call that retrieves a single item by its full primary key (partition key + sort key if composite). Returns the exact item or nothing. Use when you know exactly which item you need. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

DynamoDB PutItem

A

API call that creates a new item or completely replaces an existing item with the same primary key. Overwrites the entire item - not a partial update. Use for inserting or full replacement. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

DynamoDB UpdateItem

A

API call that modifies specific attributes on an existing item without replacing the whole thing. Can add, remove, or change individual attributes. Use for partial updates like toggling IsActive. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Prompts Table Design (Likewize Pattern)

A

DynamoDB table with FlowName (partition key) + PromptName (sort key). Attributes: PromptText_en, PromptText_es, Category, Description, IsActive, IsClientVisible, Order. Flows call Lambda which queries this table and returns prompt text as contact attributes. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Config Table Design (Likewize Pattern)

A

DynamoDB table holding LOB-specific configuration. Each LOB has ~12 general config settings like queue mappings, business hours, and feature flags. Lambda reads this config to determine routing behavior per line of business. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

LOB (Line of Business)

A

A distinct business unit or product line that has its own configuration in the contact center. Each LOB can have different queues, prompts, hours, and routing rules. Likewize has multiple LOBs configured in DynamoDB. Section 1: DynamoDB Foundation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Lambda Handler Function

A

The entry point of your Lambda code that AWS invokes when the function is triggered. In Python: def lambda_handler(event, context). It receives the event data, processes it, and returns a response. This is the function you point Lambda to execute. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Lambda Event Object

A

The JSON payload passed to your handler containing the trigger data. When Amazon Connect invokes Lambda, the event includes contact attributes, contact ID, and flow details. You parse this to know what the caller needs. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Lambda Context Object

A

The second parameter in your handler providing runtime info about the invocation: function name, memory limit, remaining execution time, request ID. Use context.get_remaining_time_in_millis() to check if you’re about to timeout. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Lambda Response Format (Connect)

A

Lambda must return a flat dictionary of key-value string pairs for Connect to consume. Example: {‘PromptText_en’: ‘Welcome to Likewize’, ‘IsActive’: ‘true’}. Connect reads these as contact attributes. Nested objects or non-string values will fail. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Lambda Timeout

A

Maximum execution time before AWS kills the function. Default is 3 seconds, max is 15 minutes. For Connect-invoked Lambdas, keep it under 8 seconds or the flow times out. Set this in the function configuration. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Lambda Environment Variables

A

Key-value pairs configured on the function that your code reads at runtime. Use for table names, environment identifiers, feature flags. Accessed via os.environ[‘TABLE_NAME’] in Python. Keeps config out of code. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Lambda IAM Execution Role

A

The IAM role your Lambda function assumes when it runs. Defines what AWS services the function can access. If your Lambda queries DynamoDB, the execution role needs dynamodb:Query and dynamodb:GetItem permissions on that specific table. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Least Privilege (IAM)

A

Security principle: grant only the minimum permissions needed to perform a task. Don’t give Lambda full DynamoDB access - give it Query permission on the specific table ARN it needs. Reduces blast radius if the function is compromised. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

boto3

A

AWS SDK for Python. The library you import in Lambda to interact with AWS services. Use boto3.resource(‘dynamodb’) for high-level DynamoDB operations or boto3.client(‘dynamodb’) for low-level API calls. Already available in the Lambda Python runtime. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

boto3 Resource vs Client

A

Two interfaces in boto3. Resource is high-level and Pythonic - table.query() returns clean dictionaries. Client is low-level and matches the AWS API exactly - returns raw typed responses. Resource is easier for DynamoDB work. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Graceful Degradation (Lambda)

A

Designing your Lambda so it handles failures without crashing the entire flow. If DynamoDB query fails, return default prompt text instead of throwing an error. The caller still gets a response - just not the customized one. Section 2: Lambda Development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Try-Except in Lambda
Python error handling pattern essential for production Lambdas. Wrap DynamoDB calls in try blocks, catch ClientError exceptions, log the error to CloudWatch, and return a fallback response. Never let an unhandled exception crash a production flow. Section 2: Lambda Development
26
112-Attribute Parameterization Block
A block early in the Likewize main flow that reads the Connect instance ARN to determine which environment (dev/QA/UAT/prod) is running. Then sets ~112 contact attributes pointing to the correct Lambda ARNs, queue ARNs, Lex bot ARNs, and module ARNs for that environment. Means one flow works everywhere. Section 3: Connect Flow Architecture
27
Instance ARN for Environment Detection
The Amazon Resource Name of the Connect instance being used. Each environment (dev/QA/UAT/prod) has its own Connect instance with a unique ARN. The flow reads this ARN and uses it to determine which set of resources to reference. Section 3: Connect Flow Architecture
28
Contact Attribute
A key-value pair attached to a contact in Amazon Connect. Can be set by flows, Lambdas, or Lex bots. Used to pass data between blocks and functions. The parameterization block sets ~112 of these to point flows to the right resources per environment. Section 3: Connect Flow Architecture
29
Set Contact Attributes Block
Connect flow block that assigns key-value pairs to the current contact. Can set user-defined attributes or reference system/queue attributes. Used to store Lambda responses, routing decisions, and environment config on the contact. Section 3: Connect Flow Architecture
30
Invoke AWS Lambda Function Block
Connect flow block that calls a Lambda function and waits for the response. The Lambda ARN is specified (or referenced from a contact attribute). Response key-value pairs become available as external attributes: $.External.AttributeName. Section 3: Connect Flow Architecture
31
$.External Namespace
How Connect references data returned from Lambda invocations. After a Lambda returns {'PromptText_en': 'Welcome'}, the flow accesses it as $.External.PromptText_en. This is how dynamic prompts and config data flow from Lambda back into the flow. Section 3: Connect Flow Architecture
32
Play Prompt Block (Dynamic)
Connect flow block that plays audio or text-to-speech to the caller. For dynamic prompts, you reference a contact attribute like $.External.PromptText_en instead of hardcoding text. This is how DynamoDB-driven prompts reach the caller. Section 3: Connect Flow Architecture
33
Check Contact Attributes Block
Connect flow block that branches the flow based on attribute values. Used for routing logic - check LOB, language preference, business hours, or environment. Each condition routes to a different branch in the flow. Section 3: Connect Flow Architecture
34
Module (Connect)
A reusable sub-flow in Amazon Connect that can be called from other flows. Likewize has 200-300 modules. Think of them as functions - they accept inputs, do work, and return outputs. Keeps the main flow manageable. Section 3: Connect Flow Architecture
35
DNIS (Dialed Number)
The phone number the customer dialed to reach the contact center. Used to determine which LOB, queue, or flow branch to route to. Different products or services often have different published phone numbers. Section 3: Connect Flow Architecture
36
ANI (Caller Number)
The phone number of the person calling in. Used for caller identification, CRM lookups, and routing priority. Can be passed to Lambda for customer data retrieval from external systems like HITS. Section 3: Connect Flow Architecture
37
Terraform Provider
A plugin that lets Terraform interact with a specific cloud platform or service. The AWS provider authenticates with your account and translates Terraform config into AWS API calls. You declare it in a provider block with region and credentials. Section 4: Infrastructure as Code
38
Terraform Resource Block
The core building block of Terraform config. Each resource block defines one infrastructure object: a Lambda function, DynamoDB table, IAM role, etc. Syntax: resource 'aws_type' 'local_name' { config }. Terraform creates, updates, or deletes the real resource to match. Section 4: Infrastructure as Code
39
Terraform State File
A JSON file (terraform.tfstate) that maps your Terraform config to real AWS resources. Terraform reads state to know what exists and what needs to change. Never edit by hand. Store remotely (S3) for team work. Section 4: Infrastructure as Code
40
terraform init
First command you run in a new Terraform directory. Downloads the provider plugins and sets up the backend. Run it again if you add new providers or change backend config. Section 4: Infrastructure as Code
41
terraform plan
Shows what Terraform will do without actually doing it. Compares your config to state and shows creates, updates, and destroys. Always run plan before apply. This is your safety check. Section 4: Infrastructure as Code
42
terraform apply
Executes the changes shown in plan. Creates, updates, or destroys real AWS resources to match your config. Prompts for confirmation unless you pass -auto-approve. This is the actual deployment step. Section 4: Infrastructure as Code
43
terraform destroy
Tears down all resources managed by the current Terraform config. Useful for lab cleanup. Reads state file to know what to delete. Always prompts for confirmation. Section 4: Infrastructure as Code
44
CloudFormation Stack
A collection of AWS resources defined in a template (YAML or JSON) and deployed as a single unit. You create, update, or delete the stack and CloudFormation handles the individual resource operations. Failed deployments can roll back automatically. Section 4: Infrastructure as Code
45
CloudFormation Template
The YAML or JSON file that defines your infrastructure. Key sections: AWSTemplateFormatVersion, Description, Parameters, Resources (required), Outputs. Each resource has a Type (like AWS::Lambda::Function) and Properties. Section 4: Infrastructure as Code
46
CloudFormation vs Terraform
CloudFormation is AWS-native, tightly integrated, supports rollback, and uses YAML/JSON. Terraform is multi-cloud, has a larger provider ecosystem, uses HCL syntax, and manages state explicitly. Likewize uses both - infrastructure teams often pick one per project. Section 4: Infrastructure as Code
47
Terraform Variables
Input values that make your config reusable. Defined in variable blocks with type, description, and default. Referenced as var.name. Example: var.environment lets you deploy the same config to dev, QA, UAT, or prod by changing one value. Section 4: Infrastructure as Code
48
Terraform Output
Values exported after apply runs. Used to surface resource IDs, ARNs, or endpoints. Example: output the Lambda function ARN so another Terraform config or a Connect flow can reference it. Outputs show in terminal and are queryable. Section 4: Infrastructure as Code
49
CloudFormation Parameters
Input values for a CloudFormation template that make it reusable. Defined in the Parameters section with Type, Default, AllowedValues. Referenced with !Ref ParameterName. Same idea as Terraform variables but YAML syntax. Section 4: Infrastructure as Code
50
CloudFormation !Ref Function
Intrinsic function that returns the value of a parameter or the physical ID of a resource. !Ref MyLambdaFunction returns the Lambda's ARN. Used everywhere to wire resources together within a template. Section 4: Infrastructure as Code
51
CloudFormation !GetAtt Function
Intrinsic function that returns a specific attribute of a resource. !GetAtt MyLambdaFunction.Arn returns the function's ARN. More specific than !Ref - use when you need a particular property like ARN, endpoint, or ID. Section 4: Infrastructure as Code
52
Git Feature Branch
A branch created from main/develop to work on a specific feature or fix. Naming convention usually includes ticket number: feature/JIRA-123-add-prompt-lambda. Keeps your changes isolated until review and merge. Never commit directly to main. Section 5: Git Workflow & Deployment
53
Pull Request (PR)
A request to merge your feature branch into the main branch. Triggers code review from teammates, automated tests, and pipeline checks. At Likewize, PRs are how changes enter the deployment pipeline. Include description of what changed and why. Section 5: Git Workflow & Deployment
54
Branch Protection
Rules on a repository that prevent direct pushes to main/develop. Requires PRs, code reviews, and passing CI checks before merge. Ensures no untested code reaches production. Standard practice on team repos. Section 5: Git Workflow & Deployment
55
CI/CD Pipeline
Continuous Integration / Continuous Deployment - automated system that tests, builds, and deploys code when changes are merged. At Likewize: DevOps manages the pipeline, merging to main triggers the deploy process, DevOps clicks the final deploy button. Section 5: Git Workflow & Deployment
56
Monthly Release Cycle
Likewize's cadence for deploying changes that touch HITS or broader systems. Product team prioritizes, dev team builds, changes bundle into a monthly release. Connect-only changes can bypass this with Jason/manager deploying directly. Section 5: Git Workflow & Deployment
57
Hot Fix Procedure
Emergency deployment process outside the normal release cycle for critical production issues. Bypasses the monthly cadence. One of the key day-1 questions to ask your manager: what's the hot fix process? Section 5: Git Workflow & Deployment
58
Infrastructure as Code in Pipeline
The pattern where Terraform/CloudFormation templates live in Git alongside application code. When the pipeline runs, it deploys both the app code (Lambda functions) and the infrastructure (tables, roles, permissions). Everything is version-controlled and reviewable. Section 5: Git Workflow & Deployment
59
CloudWatch Logs
Automatically captures stdout/stderr from Lambda executions. Every print() or logger call in your Lambda appears here. Organized by log group (/aws/lambda/function-name) and log streams (one per execution environment). First place to look when debugging. Section 5: Monitoring & Testing
60
CloudWatch Log Group
Container for all log streams from a specific Lambda function. Named /aws/lambda/your-function-name. Set retention period to control storage costs. This is where you go to find logs for a specific function. Section 5: Monitoring & Testing
61
CloudWatch Log Stream
A sequence of log events from a single Lambda execution environment. New streams are created as Lambda scales. Within a log group, you'll see multiple streams - each represents a different container instance. Section 5: Monitoring & Testing
62
CloudWatch Metric
A data point tracked over time. Lambda auto-publishes: Invocations, Duration, Errors, Throttles, ConcurrentExecutions. You can also publish custom metrics from your code. Metrics feed dashboards and alarms. Section 5: Monitoring & Testing
63
CloudWatch Alarm
Watches a metric and triggers an action when it crosses a threshold. Example: alarm when Lambda error rate exceeds 5% for 5 minutes. Actions can be SNS notifications, auto-scaling, or incident response. Essential for production monitoring. Section 5: Monitoring & Testing
64
CloudWatch Dashboard
Custom visualization of metrics in the AWS console. Combine Lambda duration, error rates, DynamoDB read capacity, and Connect queue metrics in one view. Build these to give your team a single pane of glass for the contact center. Section 5: Monitoring & Testing
65
Lambda Test Event
A JSON payload you create in the Lambda console to simulate a trigger. For Connect-invoked Lambdas, you craft a test event that mimics the Connect event object with contact attributes and contact ID. Use this to test before wiring up the real flow. Section 5: Monitoring & Testing
66
End-to-End Call Trace
The full debugging path: phone number → Connect flow → flow blocks → Lambda invocation → DynamoDB query → Lambda response → flow continues → queue/agent. At Likewize this is a 7-step troubleshooting process from phone number to DynamoDB. Section 5: Monitoring & Testing
67
Contact Flow Logs
Connect's logging that shows every block executed during a contact. Enable in the flow settings. Shows which branches were taken, what attributes were set, Lambda results, and errors. Essential for debugging flow logic. Section 5: Monitoring & Testing
68
Contact Search (Connect Console)
Tool in the Amazon Connect console to find specific contacts by phone number, agent, queue, or time range. Starting point for troubleshooting - find the contact, then trace through its flow logs and Lambda invocations. Section 5: Monitoring & Testing
69
Lambda Layers
A way to package shared code, libraries, or dependencies separately from your function code. Attach a layer to multiple functions so they all share the same utility code. Useful for shared boto3 helpers or common business logic across Lambdas. Section 6: Advanced Concepts
70
Lambda Versioning
Publishing an immutable snapshot of your function code and config. Each version gets a unique ARN. Connect flow can point to a specific version ($LATEST or version number) or an alias. Enables safe rollbacks. Section 6: Advanced Concepts
71
Lambda Alias
A pointer to a specific Lambda version that you can shift without changing the caller's ARN. Example: alias 'prod' points to version 5. Deploy version 6, test it, then shift 'prod' to version 6. If it breaks, shift back to 5. Zero-downtime deployments. Section 6: Advanced Concepts
72
DynamoDB Streams
A change data capture feature that records every insert, update, and delete on a table in near real-time. Triggers Lambda functions on data changes. Use case: when a prompt is updated in DynamoDB, automatically invalidate a cache or notify the team. Section 6: Advanced Concepts
73
DynamoDB Global Secondary Index (GSI)
An alternate key structure on a DynamoDB table that lets you query on different attributes. Example: if your prompts table is keyed on FlowName + PromptName but you need to query by Category, create a GSI with Category as the partition key. Section 6: Advanced Concepts
74
Lex Bot (in Connect)
AWS conversational AI service integrated into Connect flows. Handles natural language understanding for IVR menus - callers speak or type intents instead of pressing buttons. Likewize has Lex bots across 200-300 modules. Leadership wants more AI here. Section 6: Advanced Concepts
75
HITS (Handset Issue Tracking System)
Likewize's proprietary insurance platform and the main integration target for Connect. Lambdas call HITS APIs to look up claims, verify customers, and route based on claim status. Changes touching HITS go through the monthly release cycle. Section 6: Advanced Concepts
76
Postman Collection
An organized set of API requests in Postman that share authentication and environment variables. At Likewize, used for testing HITS API endpoints. Ask Jason if there's an existing collection - saves hours of setup. Section 6: Advanced Concepts
77
Four-Environment Pattern
dev → QA → UAT → prod. Each environment has its own Connect instance, Lambdas, DynamoDB tables, and Lex bots. Code promotes through each stage. The parameterization block lets one flow work across all four by swapping resource ARNs. Section 6: Advanced Concepts
78
Wise Connect Naming Convention
Likewize's naming prefix for Connect resources. 'Wise' comes from the last four letters of Likewize. All flows, Lambdas, and resources follow this convention. When exploring the AWS console, filter by 'wise' to find relevant resources. Section 6: Advanced Concepts