Skip to content

Instantly share code, notes, and snippets.

View ensean's full-sized avatar
🏔️

ensean

🏔️
  • Guangzhou, China
View GitHub Profile
@ensean
ensean / lambda.py
Created August 31, 2023 16:48
lambda_auto_unzip
import logging
import zipfile
import mimetypes
from io import BytesIO
from boto3 import resource
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def upload_files(zipped, zipfile_info, destinationbucket, upload_path):
@ensean
ensean / change-s3-content-type.py
Created August 25, 2023 05:19
change-s3-content-type
import json
import urllib.parse
import boto3
print('Loading function')
s3 = boto3.client('s3')
def lambda_handler(event, context):
@ensean
ensean / cff.js
Created July 10, 2023 07:01
cloudfront function for request auth
var crypto = require('crypto');
//Update with your own key.
var magic_key = "Set_at_your_wish";
// default validation is 12 hours, update it when necessary
var time_delta = 12 * 3600;
//Response when token ts does not match.
var response403 = {
@ensean
ensean / fakelog.py
Last active July 28, 2023 02:28
log generator
import json
import datetime
import random
from datetime import timedelta
import time
i=0
def getlatlon():
a=["-73.98174286,40.71915817", "-73.98508453, 40.74716568", "-73.97333527,40.76407242", "-73.99310303,40.75263214",
"-73.98229218,40.75133133", "-73.96527863,40.80104065", "-73.97010803,40.75979996", "-73.99373627,40.74176025", "-73.98544312,40.73571014",
@ensean
ensean / fluent-bit.conf
Created July 6, 2023 02:14
fluent-bit-cross-account-region-to-firehose
# 根据日志格式配置parser、filter
[INPUT]
name tail
Parser nginx
path /home/ec2-user/station/ev*log
db test.db
Mem_Buf_Limit 4096MB
[OUTPUT]
@ensean
ensean / mock-cf-log.md
Last active June 6, 2023 03:41
redshift-spectrum-cloudfront-logs
  1. EC2配置S3写权限,可以给EC2配置角色 也可以配置aws ak/sk

  2. EC2下载cloudfront log模拟脚本,并安装依赖

sudo yum install python3-devel  -y
sudo yum group install "Development Tools" -y
wget https://d3gpeimdfrgv8u.cloudfront.net/clo-workshop-smb/alb-cf-log-faker.zip
unzip alb-cf-log-faker.zip
cd alb
@ensean
ensean / template.json
Created February 28, 2023 05:05
mediaconvert job json for mp3 to mp3 hls
{
"Queue": "arn:aws:mediaconvert:ap-northeast-1:77959xxx7093:queues/Default",
"UserMetadata": {},
"Role": "arn:aws:iam::779598xxx7093:role/service-role/MediaConvert_Default_Role",
"Settings": {
"TimecodeConfig": {
"Source": "ZEROBASED"
},
"OutputGroups": [
{
@ensean
ensean / auth.js
Created June 24, 2022 03:38
demo auth js for cf workshop in Shenzhen
//Response when token ts does not match.
var response403 = {
statusCode: 403,
statusDescription: 'Unauthorized',
headers: {
'cache-control': {
'value': 'max-age=1296000'
}
}
};
@ensean
ensean / eksctl-fargate-nat-example.yaml
Created April 24, 2022 05:59
eksctl-fargate-nat-example
# An example of ClusterConfig object with highly available NAT gateways
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: cluster-fargate
region: ap-northeast-1
vpc:
@ensean
ensean / cff_response_content_type_by_ua.js
Last active March 16, 2022 15:24
cff_response_content_type_by_ua
function handler(event) {
var response = event.response;
var request = event.request;
var ua = request.headers['user-agent']['value'].toLowerCase();
var headers = response.headers;
if (ua.indexOf('chrome') > -1) {
// Set the cache-control header
headers['content-type'] = {value: "application/vnd.android.package-archive"};
}
else if (ua.indexOf('firefox') > -1){