Mia*_*Mia 7 amazon-web-services python-3.x boto3 aws-lambda
我需要使用从头开始选项创建一个 lambda 函数。我看到AWS应用程序中有3个选项。我浏览了AWS Boto3文档,但找不到选择3种选择方式的方法。
我尝试查看 Boto3 Doc。我的代码对于 S3 密钥失败。如何使用 Boto3 代码创建一个简单的 lambda 函数!
我的代码:
lambda_Client = boto3.client('lambda', aws_access_key_id=accessKey,
aws_secret_access_key=secretKey,region_name=region)
response =lambda_Client.create_function(
Code={
'S3Bucket': 's3bucket',
'S3Key': 'function.zip', #how can i create or fetch this S3Key
},
Description='Process image objects from Amazon S3.',
FunctionName='function_name',
Handler='index.handler',
Publish=True,
Role='arn:aws:iam::123456789012:role/lambda-role',
Runtime='nodejs12.x',
)
print(response)
Run Code Online (Sandbox Code Playgroud)
错误:GetObjet S3 密钥无效。
如何创建 s3 密钥,或者是否有一种简单的方法来创建没有任何依赖性的 AWS Lambda 函数。请指导我!
我在尝试使用 zip 文件创建 lambda 函数时发现了很多问题,但最终我做到了并且成功了。
此代码将从 ZIP 文件创建 lambda 函数:
首先我们声明 zip 文件的路径然后在aws_file
函数中我们将其转换为字节以便亚马逊可以读取它最后lambda_creator
将上传它并使用给定的参数创建 lambda 函数
ZIPNAME = "code\\my-deployment-package.zip"
def aws_file():
with open(ZIPNAME, 'rb') as file_data:
bytes_content = file_data.read()
return bytes_content
def lambda_creator(name):
lambda_client = boto3.client('lambda', aws_access_key_id=ACCESSKEY,
aws_secret_access_key=SECRETKEY, region_name=REGION)
response = lambda_client.create_function(
Code={
'ZipFile': aws_file()
},
Description='Hello World Test.',
FunctionName='Test-lambda',
Handler='lambda_function.lambda_handler',
Publish=True,
Role='arn:aws:iam:: 123456789012:role/lambda-rol',
Runtime='python3.8',
)
return response
Run Code Online (Sandbox Code Playgroud)
该密钥来自将对象上传到 Amazon S3,您可以通过 Boto3 SDK调用put_object以编程方式执行此操作。
下面是如何使用的一个粗略示例
import zipfile
archive = zipfile.ZipFile('function.zip', 'w')
zip.write('index.js', 'path/on/disk/index.js')
.......
client.put_object(Body=archive, Bucket='bucket-name', Key='function.zip')
lambda_Client = boto3.client('lambda', aws_access_key_id=accessKey,
aws_secret_access_key=secretKey,region_name=region)
response = lambda_Client.create_function(
Code={
'S3Bucket': 'bucket-name',
'S3Key': 'function.zip', #how can i create or fetch this S3Key
},
Description='Process image objects from Amazon S3.',
FunctionName='function_name',
Handler='index.handler',
Publish=True,
Role='arn:aws:iam::123456789012:role/lambda-role',
Runtime='nodejs12.x',
)
Run Code Online (Sandbox Code Playgroud)
您在上传此文件时指定密钥,请确保在上传时压缩代码。
或者使用该ZipFile
属性,Boto3 文档中指出了以下内容。
部署包的 base64 编码内容。AWS 开发工具包和 AWS CLI 客户端为您处理编码。
归档时间: |
|
查看次数: |
8417 次 |
最近记录: |