# 简单的例子
```php
<?php
namespace backend\tests\unit\goods;
class GoodsCest extends \Codeception\Test\Unit
{
public function testLogError()
{
\Yii::error('qwe');
\Yii::$app->custom->logs('qwe', [123,3333]);
$this->assertTrue(1==(2-1));
}
}
```
const endpoint =
'https://gist.githubusercontent.com/Miserlou/c5cd8364bf9b2420bb29/raw/2bf258763cdddd704f8ffd3ea9a3e81d25e2c6f6/cities.json';
const cities = []; // Make a new empty array to put the data in
fetch(endpoint) // fetch the url -> gives a promise
.then((blob) => blob.json()) // gives a response and give an object back with the json() method. For best practices use response as a parameter to make it more readable.
.then((data) => cities.push(...data)); //Push data into an arra
## UploadUrlResponse Explained - Direct S3 Uploads
### The Problem It Solves
**Without Presigned URLs:**
```
Frontend → API → Lambda → S3 ❌ Slow & Expensive
(5MB image)
```
- Lambda has 6MB payload limit
- Ties up Lambda for entire upload
- Double bandwidth costs
**With Presigned URLs:**
```
Frontend → API → Lambda (generates URL) → Returns URL
↓
Frontend → S3 (direct upload) ✅ Fast & Cheap
```
### How It Works
```python
# 1. Frontend requests upload perm
# Outputs Section Explained
## Let's add detailed comments to the Outputs section:
```yaml
# ========== OUTPUTS ==========
# Values displayed after deployment completes
# Useful for integrating with frontend or other systems
Outputs:
ApiUrl:
Description: "API Gateway endpoint URL"
Value: !Sub "https://${ApiGateway}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
# Example: https://abc123xyz.execute-api.us-east-1.amazonaws.com/Prod/
UserPoolId:
Descript
## Scheduled Tasks Explained
### Let's add detailed comments to the Scheduled Tasks section:
```yaml
# ========== SCHEDULED TASKS ==========
# Lambda functions that run on a schedule
# Uses EventBridge (CloudWatch Events) for cron-based triggers
SendRemindersFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: scheduled.send_reminders
Policies:
- DynamoDBReadPolicy:
TableName: !Ref EventsTable # Read
## Step Functions State Machine Explained
### Let's add detailed comments to the State Machine section:
```yaml
# ========== STEP FUNCTIONS ==========
# Orchestrates the registration workflow
# Visual workflow that connects multiple Lambda functions
RegistrationStateMachine:
Type: AWS::Serverless::StateMachine # SAM resource type (auto-creates IAM role)
Properties:
Name: !Sub "${AWS::StackName}-registration-workflow"
# Variable substitution - maps placeholders
## Step Functions Tasks Explained
### Let's add detailed comments to the Step Functions Tasks section:
```yaml
# ========== STEP FUNCTIONS TASKS ==========
# Individual Lambda functions orchestrated by Step Functions
# Each handles one specific step in the registration workflow
ValidateRegistrationFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: workflow.validate_registration
Policies:
- DynamoDBReadPolicy:
Ta
# How to check running services
To see the entire list of configured services (running or stopped):
```
$ sudo systemctl --type=service
```
## Registration Functions Explained
### Let's add detailed comments to the Registration Functions section:
```yaml
# ========== REGISTRATION FUNCTIONS ==========
# Handle user registrations for events
# Uses async processing for scalability
RegisterForEventFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: registrations.register_for_event
Environment:
Variables:
# Removed - causes circular dependency!
## Event CRUD Functions Explained
### Let's add detailed comments to the Event CRUD Functions section:
```yaml
# ========== EVENT CRUD FUNCTIONS ==========
# Core business logic - managing events
# CRUD = Create, Read, Update, Delete operations
CreateEventFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: events.create_event
# Permissions needed
Policies:
- DynamoDBWritePolicy:
TableName: !Ref EventsT
## Auth Functions Explained
### Let's add detailed comments to the Auth Functions section:
```yaml
# ========== AUTH FUNCTIONS ==========
# Lambda functions handling user authentication
# Work with Cognito to manage user accounts
SignUpFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world/
Handler: auth.sign_up # File: auth.py, Function: sign_up
# Permissions to create users in Cognito
Policies:
- Statement:
E
1. What is the name of the film that you were scared of?
2. That's the flop that the critic wasn't impressed by,
3. This is the blockbuster that the audience went craty about.
4. She logged off of the livestream, which she was bored with.
5. I met the girl that you chatted up at the gig last night.
6. She's the stand-up comedian,that I'm a big fan of.
7. That's the girl whose boyfriend can get us backstage to meet the band.
8. That's the production company that the crew works for.
F
1. The p
## Technical Documentation
[ESP32 Technical Reference Manual](https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf)
[ESP32 Resources](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/resources.html)
[ESP32 Arduino Core Documentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/)
[ESP32 API Reference](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.html)
=TEXTJOIN(":",1,MID(J8,SEQUENCE(6,1,1,2),2))
## Queues Section Explained
### Let's add detailed comments to the Queues section:
```yaml
# ========== QUEUES ==========
# SQS queues for asynchronous processing
# Decouples API from heavy processing tasks
RegistrationQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub "${AWS::StackName}-registrations"
# How long a message stays invisible after pickup
VisibilityTimeout: 60 # 60 seconds to process
# Failed message handling
RedrivePolic