本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

AWS::Lambda镜像基于lambci/lambda构建,旨在简化Perl脚本在AWS Lambda中的运行。通过预构建的Lambda层、Docker本地测试环境及配套工具,开发者可快速开发、部署和调试Perl语言的AWS Lambda函数,支持AWS ***请求追踪和Paws(Perl AWS SDK)调用AWS服务。
AWS::***模块,支持请求追踪和性能分析适用于需要在AWS Lambda中运行Perl代码的开发者,特别是:
创建Perl处理函数handler.pl:
sub handle { my ($payload, $context) = @_; return $payload; }
打包代码:
zip handler.zip handler.pl
使用AWS CLI创建Lambda函数:
aws --region "$REGION" --profile "$PROFILE" lambda create-function \ --function-name "hello-perl" \ --zip-file "fileb://handler.zip" \ --handler "handler.handle" \ --runtime provided.al2 \ --role arn:aws:iam::xxxxxxxxxxxx:role/service-role/lambda-custom-runtime-perl-role \ --layers "arn:aws:lambda:$REGION:445285296882:layer:perl-5-32-runtime-al2:1"
通过代码获取:
use AWS::Lambda; my $info = AWS::Lambda::get_layer_info_al2( "5.32", # Perl版本 "us-east-1", # 区域 ); say $info->{runtime_arn}; # 运行时层ARN say $info->{paws_arn}; # Paws SDK层ARN
通过命令行获取:
# 获取运行时层ARN perl -MAWS::Lambda -e 'AWS::Lambda::print_runtime_arn_al2("5.32", "us-east-1")' # 获取Paws层ARN perl -MAWS::Lambda -e 'AWS::Lambda::print_paws_arn_al2("5.32", "us-east-1")'
arn:aws:lambda:af-south-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-east-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-northeast-2:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:ca-central-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:eu-south-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:eu-west-3:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:me-south-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:sa-east-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:us-east-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:us-east-2:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:us-west-1:445285296882:layer:perl-5-32-runtime-al2:1arn:aws:lambda:us-west-2:445285296882:layer:perl-5-32-runtime-al2:1docker run --rm -v $(PWD):/var/task shogo82148/p5-aws-lambda:build-5.32.al2 \ cpanm --notest --local-lib extlocal --no-man-pages --installdeps .
docker run --rm -v $(PWD):/var/task shogo82148/p5-aws-lambda:5.32.al2 \ handler.handle '{"some":"event"}'
通过AWS::***模块实现请求追踪:
use utf8; use warnings; use strict; use AWS::*** qw/ capture /; sub handle { my ($payload, $context) = @_; capture "myApp" => sub { capture "nested" => sub { # 业务逻辑... }; }; capture "another" => sub { # 业务逻辑... }; return; } 1;
Paws是Perl的AWS SDK,可通过预构建层快速集成。
aws --region "$REGION" --profile "$PROFILE" lambda create-function \ --function-name "hello-perl-paws" \ --zip-file "fileb://handler.zip" \ --handler "handler.handle" \ --runtime provided.al2 \ --role arn:aws:iam::xxxxxxxxxxxx:role/service-role/lambda-custom-runtime-perl-role \ --layers \ "arn:aws:lambda:$REGION:445285296882:layer:perl-5-32-runtime-al2:1" \ "arn:aws:lambda:$REGION:445285296882:layer:perl-5-32-paws-al2:1"
use Paws; my $s3 = Paws->service('S3'); my $buckets = $s3->ListBuckets(); return { buckets => [map { $_->Name } @{$buckets->Buckets}] };
# 安装依赖 docker run --rm -v $(PWD):/var/task shogo82148/p5-aws-lambda:build-5.32-paws.al2 \ cpanm --notest --local-lib extlocal --no-man-pages --installdeps . # 运行测试 docker run --rm -v $(PWD):/var/task shogo82148/p5-aws-lambda:5.32-paws.al2 \ handler.handle '{"some":"event"}'
将自定义Perl模块打包为Lambda层:
# 创建Some::Module层 docker run --rm \ -v $(PWD):/var/task \ -v $(PATH_TO_LAYER_DIR)/lib/perl5/site_perl:/opt/lib/perl5/site_perl \ shogo82148/p5-aws-lambda:build-5.32.al2 \ cpanm --notest --no-man-pages Some::Module # 打包层 cd $(PATH_TO_LAYER_DIR) && zip -9 -r $(PATH_TO_DIST)/some-module.zip .
提供基于旧版Amazon Linux(runtime=provided)的层,支持Perl 5.32/5.30/5.28/5.26,层ARN格式:
arn:aws:lambda:$REGION:445285296882:layer:perl-$VERSION-runtime:$VERSIONarn:aws:lambda:$REGION:445285296882:layer:perl-$VERSION-paws:$VERSIONMIT许可证(MIT)
版权所有 (C) Ichinose Shogo。
Ichinose Shogo <***>
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429