今天我有一个新的 AWS Lambda 问题,在谷歌找不到任何地方。
我新建了一个 Lambda 函数,毫无疑问。但是当我在这个函数中输入任何代码时[例如。console.log();] 并单击“保存”,出现错误:“提供的执行角色无权调用 EC2 上的 DescribeNetworkInterfaces”
exports.handler = (event, context, callback) => {
callback(null, 'Hello from Lambda');
console.log(); // here is my code
};
Run Code Online (Sandbox Code Playgroud)
我将函数与 Role 绑定: lambda_excute_execution(Policy:AmazonElasticTranscoderFullAccess) 并且此函数现在未与任何触发器绑定。
然后,我给角色“AdministratorAccess”策略,我可以正确保存我的源代码。
此角色可以在今天之前成功运行 Functions。
有人知道这个错误吗?
非常感谢!
我想多次保存一个对象,下面的代码不起作用:
for(int i = 0; i < 5; i++) {
repository.save(object);
}
Run Code Online (Sandbox Code Playgroud)
然后我将源更改为:
List<SomeObject> objectList = new ArrayList<>();
for(int i = 0; i < 5; i++) {
objectList.add(object);
}
repository.save(object);
Run Code Online (Sandbox Code Playgroud)
但它也不起作用,它只将对象保存到数据库一次。
也许因为它指向一个实例,但我想知道是否有一种简单的方法可以多次保存一个对象?
谢谢你!
我的VPC中有一个Lambda函数,我想访问S3存储桶。
我认为我已经正确设置了S3 VPC端点,
因为我在同一子网(Lambda函数子网)中创建了EC2实例,
使用相同的安全组,
并运行Lambda函数代码的副本,
它可以正确显示S3文件内容。
但是,当我在Lambda中运行代码时,它失败了。
因此,我想知道“在EC2中运行”和“在Lambda中运行”之间有什么区别?
为什么在Lambda中运行它失败?
这是我的Lambda函数代码:
import boto3
s3 = boto3.client('s3', region_name='ap-northeast-1')
def lambda_handler(event, context):
bucket = '*xxxxxx*'
key = 's3-upload.json'
try:
response = s3.get_object(Bucket=bucket, Key=key)
print('--------------------------------------')
print(response)
print('--------------------------------------')
body = response['Body'].read()
print(body)
print('--------------------------------------')
print("CONTENT TYPE: " + response['ContentType'])
except Exception as e:
print('Error getting object.')
print(e)
raise e
Run Code Online (Sandbox Code Playgroud)