当我通过 s3brower 将文件上传到 s3 时,我的 python lambda 脚本将处理这些文件。如果我一次上传数千个文件,可能会出现一些失败例如,我上传1651张图片,lambda失败了十六次,一张名为
test.jpg
在我的lambda脚本中,首先检查文件是否存在,
client.head_object(Bucket=bucket_tmp,Key='test.jpg')
cloudwatch日志显示错误 An error occurred (404) when calling the HeadObject operation: Not Found
然后我在我的计算机中执行 client.head_object(Bucket=bucket_tmp,Key='test.jpg') ,没问题,然后我可以在我的s3存储桶中看到它。
我在中国,这会是网络问题吗?当lambda处理图像时,但图像没有上传?
我有一个现有的kinesis流和多个lambda具有不同批量大小的消费者。我想更新 lambda 的批量大小之一(从 25 到 1000)。由于edit选项不可用,我认为有两个选项(afaik);
第一个是;
第二个选项;
我的问题是;
谢谢
我正在开发一个仅支持 cURL 请求(仅 POST/GET/UPDATE 等)的平台。我需要在我的应用程序中使用 DynamoDB - 有没有办法通过 cURL 实施 DynamoDB?更清楚地说,我只需要四件事 - PutItem、Query、GetItem和Update ItemDynamoDB。
我在某处读到过有关“Lambda”函数的内容,但无法确切理解它创建 REST API 的目的是什么。它会以任何方式帮助我吗?
感谢任何帮助:) 谢谢!
amazon-web-services amazon-dynamodb aws-lambda aws-api-gateway
我需要删除其 EBS 卷已删除的弹性块存储卷的快照。我想使用 Lambda 函数来完成此操作。我编写了一个脚本,如果 EBS 卷不存在,该脚本将返回 false。如何修改它以删除任何相关快照?
def get_snapshots():
account_ids = list()
account_ids.append( boto3.client('sts').get_caller_identity().get('Account'))
return ec2.describe_snapshots(OwnerIds=account_ids)
def volume_exists(volume_id):
if not volume_id: return ''
try:
ec2.describe_volumes(VolumeIds=[volume_id])
return True
except ClientError:
return False
def lambda_handler(event, context):
with open('/tmp/report.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([
'volume exists'
])
snaps = get_snapshots()
for snap in snaps.get('Snapshots'):
writer.writerow([
str(volume_exists(snap['VolumeId']))
])
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
sam --version
SAM CLI, version 1.0.0
aws --version
aws-cli/1.18.79 Python/3.7.6 Darwin/19.6.0 botocore/1.17.7
Run Code Online (Sandbox Code Playgroud)
问题:
$ aws lambda get-account-settings
'str' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)
~/.aws/config完整如下图所示:
[default]
gregion=None
output=json
region=us-east-1
s3=
signature_version=s3v4
[profile my_name]
region=us-east-1
output=json
Run Code Online (Sandbox Code Playgroud)
问题:我的 SAM CLI 是否配置不正确?如何正确配置 Lambda 相关默认设置,例如并发限制和显示帐户设置?
我想在 AWS API 网关中创建许多路由,并将请求传递给 AWS lambda 函数。每个路由应将请求传递给 Lambda 函数中的不同方法。但现在我只看到我们只能为 lambda 定义一个处理程序,这是调用时唯一被调用的函数。有没有最好的方法可以通过示例代码实现这一目标?
IAM我已经根据策略创建了一个角色AmazonEC2FullAccess。这个角色是在 中正确创建的IAM。但同样的角色似乎并没有附加lambda功能。
有人可以帮忙吗?我有管理员访问权限,因此我收到以下错误。
(AccessDenied) when calling the PutMetricAlarm operation: User: arn:aws:sts::xxx:assumed-role/lambdaEC2fullaccess/StopEc2 is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::xxx:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents"
为什么我无法在控制台中创建 AWS Lambda python 打印函数?它显示已成功执行,但在结果中我从未看到我想要的打印文字。
我使用了这段代码,它显示了以下执行结果 -
target = "blue"
prediction = "red"
print(file_name,target,prediction, (lambda: '+' if target==prediction else '-')) ```
**Execution result-**
```Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
Request ID:
"xxxxxxx"
Function logs:
START RequestId: xxxxxx Version: $LATEST
END RequestId: xxxxxx
REPORT RequestId: xxxx Duration: 1.14 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 52 MB
Run Code Online (Sandbox Code Playgroud) architecture analysis python-3.x aws-lambda amazon-quicksight
在我的应用程序中,我将请求发送到getInitialPropsapi 端点(在 /api 文件夹中)。在本地主机中运行我的应用程序时,一切正常,因为它都在同一域(本地主机)下。
将我的应用程序成功部署到 aws lambda (使用serverless-next.js)后,这些请求不再有效。
原因是getInitialProps在服务器中运行时的主机头是myAppBucket.s3.us-east-1.amazonaws.com,但应用程序域是https://d25q7fh11ll2cg.cloudfront.net。请求myAppBucket.s3.us-east-1.amazonaws.com/api/users不起作用但起作用https://d25q7fh11ll2cg.cloudfront.net/api/users。https://d25q7fh11ll2cg.cloudfront.net/api/users但我运行时没有域数据(即) getInitialProps。
我不想将域作为环境变量。还有另一种解决方案吗?此外,直接调用处理程序函数getInitialProps也是有问题的,因为处理程序仅使用服务器端包。谢谢
我已经在 中创建了一个用户池Cognito。
我想做的是,当新用户尝试使用 UI 注册时,他会收到验证码。用户输入代码后,Post confirmation必须触发 lambda,并且必须将这个新创建的用户直接添加到名为 的组中users。
我找到了admin_add_user_to_group客户端并编写了以下代码并将其部署为 lambda:
import boto3
import hmac
import hashlib
import base64
USER_POOL_ID = ''
CLIENT_ID = ''
CLIENT_SECRET = ''
def lambda_handler(event, context):
client = boto3.client('cognito-idp')
try:
username = event['username']
response = client.admin_add_user_to_group(
UserPoolId=USER_POOL_ID,
Username=username,
GroupName='users'
)
except client.exceptions.InvalidParameterException:
return {"error": True, "success": False, "message": "Username doesnt exists"}
except client.exceptions.ResourceNotFoundException:
return {"error": True, "success": False, "message": "Invalid Verification code"}
except client.exceptions.NotAuthorizedException:
return {"error": True, "success": …Run Code Online (Sandbox Code Playgroud) amazon-web-services python-3.x amazon-cognito aws-lambda amazon-cognito-triggers
aws-lambda ×10
amazon-ec2 ×2
python ×2
python-3.x ×2
amazon-iam ×1
amazon-s3 ×1
analysis ×1
architecture ×1
aws-config ×1
aws-ebs ×1
aws-sam-cli ×1
next.js ×1
serverless ×1