AWS Lambda 准备有平台相关性的 Python 依赖项程序包

native code

使用 docker 在 Amazon lambda runtime 环境

mkdir lambda_headless_chrome_python
cd lambda_headless_chrome_python

  • 创建下面的 Dockerfile。

Dockerfile

FROM lambci/lambda:build-python3.6

ENV AWS_DEFAULT_REGION ap-northeast-1
ENV APP_DIR /var/task

ADD . .

CMD pip install -r requirements.txt -t $APP_DIR && \
  zip -9 deploy_package.zip lambda_function.py && \
  zip -r9 deploy_package.zip *
  • 创建 docker 镜像并打包。
docker build -t lambda_headless_chrome .
docker run -v "${PWD}":/var/task lambda_headless_chrome
  • 现在您有一个 zip 文件deploy_package.zip 可以上传到 lambda。

使用 SAM

如果使用了 AWS Chalice 部署项目,且依赖包的体积不大,可以直接使用 Chalice 部署。会自动准备适配 Lambda 环境的依赖包,作为项目代码的一部分,整体压缩打包更新到 Lambda。

签名算法名称

Signature algorithm. Could be one of these values :

  • HS256: HMAC using SHA-256 hash algorithm

  • HS384: HMAC using SHA-384 hash algorithm

  • HS512: HMAC using SHA-512 hash algorithm

  • RS256: RSASSA using SHA-256 hash algorithm

  • RS384: RSASSA using SHA-384 hash algorithm

  • RS512: RSASSA using SHA-512 hash algorithm

  • ES256: ECDSA using P-256 curve and SHA-256 hash algorithm

  • ES384: ECDSA using P-384 curve and SHA-384 hash algorithm

  • ES512: ECDSA using P-521 curve and SHA-512 hash algorithm

Windows 批处理脚本 变量加减乘除运算

@echo off
set /a a=1,b=2
set /a result=%a%+%b%
echo 加法运算:%a%+%b%=%result%
pause > nul 

/a 表示进行赋值运算
%a%+%b% 两个变量相加

@echo off

rem 减法
set /a a=24,b=4
set /a result=%a%-%b%

rem 乘法
set /a a=2,b=3
set /a result=%a%*%b%

rem 除法
set /a a=24,b=4
set /a result=%a%/%b%

pause > nul 

rem 是注释行

ffmpeg 按时间切分割视频

ffmpeg -i input.mp4 -ss start_time -to end_time -c copy output.mp4

start_time 是要开始切分的时间戳,以秒为单位。
end_time 是要结束切分的时间戳,以秒为单位。
-c copy 选项指示 ffmpeg 复制输入视频的音视频流,而不会重新编码它们。这将使输出文件更小,并且质量不会损失。

vbs 打开『选择文件夹』对话框

打开 『选择文件夹』对话框,支持指定默认路径

Function SelectFolder( myStartFolder )
	' Version: 0.1.0
	' Updated: 2021-08-07
	
    ' Standard housekeeping
    Dim objFolder, objItem, objShell
    
    ' Custom error handling
    On Error Resume Next
    SelectFolder = ""

    ' Create a dialog object
    Set objShell  = CreateObject( "Shell.Application" )
    Set objFolder = objShell.BrowseForFolder( 0, "Ñ¡ÔñÎļþ¼Ð", 0, myStartFolder )

    ' Return the path of the selected folder
    If IsObject( objfolder ) Then SelectFolder = objFolder.Self.Path

    ' Standard housekeeping
    Set objFolder = Nothing
    Set objshell  = Nothing
    On Error Goto 0
End Function

msgbox SelectFolder("C:\Windows\Desktop")

vbs 解析文件路径(文件名、扩展名、路径)

将传入的文件路径分割为路径、文件名、扩展名三部分。

dim example
example="c:\windows\a.txt"

Function get_file_parts(in_file)
 ' Version: 0.1.0
 ' Updated: 2021-08-07
 
 dim input_path,input_filename, ext_name, left_part_name

 input_path=Left(in_file, InStrRev(in_file,"\") - 1)
 input_filename=Right(in_file,Len(in_file)-InStrRev(in_file,"\"))
 ' msgbox input_path
 ' msgbox input_filename
 left_part_name=Left(input_filename, InStrRev(input_filename,".") - 1)
 ext_name=Right(input_filename,Len(input_filename)-InStrRev(input_filename,".")+1)

 get_file_parts=input_path & "," & left_part_name & "," & ext_name

End Function

msgbox get_file_parts(example)
' c:\windows
' a
' .txt

ffmpeg filter_complex 复杂多滤镜叠加

使用选项 -filter_complex

滤镜语法:
filtername=option1=value1:option2=value2:option3=value3...

完整命令语法:
ffmpeg -i 输入0 -i 输入1 -i 输入N -filter_complex "多滤镜组合表达式" output.mp4

其中多滤镜组合表达式语法思路是:[输入]滤镜[输出];[输入]滤镜[输出];