AWS-Lambda-Quick
view release on metacpan or search on metacpan
lib/AWS/Lambda/Quick/Upload.pm view on Meta::CPAN
# documentation
my $pv = $region eq 'me-south-1' ? 3 : 4;
push @{$layers},
"arn:aws:lambda:$region:445285296882:layer:perl-5-30-paws:$pv";
next;
}
die "Layer '$layer' is neither a known named layer nor a layer arn";
}
if ( $update_type eq 'create-function' ) {
$self->debug('creating new function');
my $result = $self->aws_do(
'lambda',
'create-function',
{
'function-name' => $self->name,
'role' => $self->_role_arn,
'region' => $region,
'runtime' => 'provided',
'zip-file' => $self->zip_file_blob,
'handler' => 'handler.handler',
'layers' => $layers,
'timeout' => $self->timeout,
'memory-size' => $self->memory_size,
}
);
$self->debug('new function created');
return $result->{FunctionArn};
}
$self->debug('updating function code');
my $result = $self->aws_do(
'lambda',
'update-function-code',
{
'function-name' => $self->name,
'zip-file' => $self->zip_file_blob,
}
);
$self->debug('function code updated');
$self->debug('updating function configuration');
$self->aws_do(
'lambda',
'update-function-configuration',
{
'function-name' => $self->name,
'role' => $self->_role_arn,
'region' => $region,
'runtime' => 'provided',
'handler' => 'handler.handler',
'layers' => $layers,
'timeout' => $self->timeout,
'memory-size' => $self->memory_size,
}
);
$self->debug('function congifuration updated');
return $result->{FunctionArn};
}
# just like $self->aws->$method but throws exception on error
sub aws_do {
my $self = shift;
my $method = shift;
my $aws = $self->aws;
my $result = $aws->$method(@_);
return $result if defined $result;
# uh oh, something went wrong, throw exception
## no critic (ProhibitPackageVars)
my $code = $AWS::CLIWrapper::Error->{Code};
my $message = $AWS::CLIWrapper::Error->{Message};
die "AWS CLI failure when calling $method $_[0] '$code': $message";
}
sub encode_json($) {
return JSON::PP->new->ascii->canonical(1)->allow_nonref(1)->encode(shift);
}
sub debug {
my $self = shift;
return unless $ENV{AWS_LAMBDA_QUICK_DEBUG};
for (@_) {
print STDERR "$_\n" or die "Can't write to fh: $!";
}
return ();
}
sub just_update_function_code {
my $self = shift;
$self->aws_do(
'lambda',
'update-function-code',
{
'function-name' => $self->name,
'zip-file' => $self->zip_file_blob,
},
);
return ();
}
1;
__END__
=head1 NAME
AWS::Lambda::Quick::Upload - upload for AWS::Lambda::Quick
=head1 DESCRIPTION
No user servicable parts. See L<AWS::Lambda::Quick> for usage.
=head1 AUTHOR
( run in 0.671 second using v1.01-cache-2.11-cpan-39bf76dae61 )