Python 3.x 使用Boto3 Python代码创建AWS Lambda函数?
我需要使用从头开始选项创建一个lambda函数。我看到AWS应用程序中有3个选项。我浏览了AWS Boto3文档,但找不到选择3种方法的方法 我试着去调查医生。我的代码对于S3密钥失败。如何使用Boto3代码创建简单的lambda函数 我的代码:Python 3.x 使用Boto3 Python代码创建AWS Lambda函数?,python-3.x,amazon-web-services,aws-lambda,boto3,Python 3.x,Amazon Web Services,Aws Lambda,Boto3,我需要使用从头开始选项创建一个lambda函数。我看到AWS应用程序中有3个选项。我浏览了AWS Boto3文档,但找不到选择3种方法的方法 我试着去调查医生。我的代码对于S3密钥失败。如何使用Boto3代码创建简单的lambda函数 我的代码: lambda_Client = boto3.client('lambda', aws_access_key_id=accessKey, aws_secret_access_key=secretKey,r
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)
错误:
GetObjet S3密钥无效
我如何创建一个s3键,或者有没有一种简单的方法来创建一个AWS Lambda函数而没有任何依赖关系。请引导我 此键来自将对象上载到Amazon S3,您可以通过Boto3 SDK以编程方式进行调用 下面是如何使用的一个粗略示例
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',
)
上载此文件时指定密钥,请确保上载时压缩代码
或者使用ZipFile
属性,从它声明以下内容
部署包的base64编码内容。AWS SDK和AWS CLI客户端为您处理编码
我在尝试使用zip文件创建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
我已经添加了一个粗略的示例,它应该说明如何实现您指定的Lambda角色,您只需要在其策略中添加
xray:PutTraceSegments
的权限。或者将AWSXrayWriteOnlyAccess
托管策略添加到您的角色:)好的,谢谢,我正在使用python 3.7.3进行代码导入zipfile archive=zipfile.zipfile('function.zip','w')zip.write('index.js','path/on/disk/index.js'))我作为AttributeError收到错误:类型对象“zip”没有属性“write”write没有突出显示,而import zip在单击itI时将进入正确的库我只需要上传一个zip文件,而不是写入我该怎么做?哎呀,那应该是存档。写请解释你的代码是做什么的以及它是如何做的。