标签: aws-lambda

AWS lambda:调用 HeadObject 操作时发生错误(404):未找到

当我通过 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处理图像时,但图像没有上传?

python amazon-s3 amazon-web-services aws-lambda

0
推荐指数
1
解决办法
9856
查看次数

更改 kinesis 的 aws lambda 消费者批量大小是否会导致数据丢失或重复

我有一个现有的kinesis流和多个lambda具有不同批量大小的消费者。我想更新 lambda 的批量大小之一(从 25 到 1000)。由于edit选项不可用,我认为有两个选项(afaik);

第一个是;

  • 从 lambda 控制台禁用 kinesis。
  • 创建一个新的 kinesis 触发器,设置批量大小
  • 删除禁用的一项。

第二个选项;

  • 从 lambda 控制台删除现有的 kinesis
  • 创建一个新的 kinesis 触发器,设置批量大小

我的问题是;

  • 这些选项中的最佳实践是什么,还有更好的选择吗?
  • 在这两种情况下都会出现数据丢失/重复吗?
  • 如果可能的话,如何防止数据丢失或数据重复?

谢谢

amazon-web-services amazon-kinesis aws-lambda

0
推荐指数
1
解决办法
542
查看次数

如何在 cURL 中实施 DynamoDB?

我正在开发一个仅支持 cURL 请求(仅 POST/GET/UPDATE 等)的平台。我需要在我的应用程序中使用 DynamoDB - 有没有办法通过 cURL 实施 DynamoDB?更清楚地说,我只需要四件事 - PutItemQueryGetItemUpdate ItemDynamoDB。

我在某处读到过有关“Lambda”函数的内容,但无法确切理解它创建 REST API 的目的是什么。它会以任何方式帮助我吗?

感谢任何帮助:) 谢谢!

amazon-web-services amazon-dynamodb aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
1120
查看次数

如果删除了卷,则删除快照

我需要删除其 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)

有什么建议吗?

python amazon-ec2 amazon-web-services aws-lambda aws-ebs

0
推荐指数
1
解决办法
1091
查看次数

aws lambda get-account-settings 返回“str”对象没有属性“get”

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-lambda aws-sam-cli aws-config

0
推荐指数
1
解决办法
2005
查看次数

AWS 网关将许多 API 路由到单个 lambda 集成,每个端点映射到 Lambda (java) 的不同函数

我想在 AWS API 网关中创建许多路由,并将请求传递给 AWS lambda 函数。每个路由应将请求传递给 Lambda 函数中的不同方法。但现在我只看到我们只能为 lambda 定义一个处理程序,这是调用时唯一被调用的函数。有没有最好的方法可以通过示例代码实现这一目标?

amazon-web-services aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
3637
查看次数

AWS Lambda Functions:它不显示现有角色的列表

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"

具有访问角色的图像

角色未出现在 Lambda 中

amazon-ec2 amazon-web-services amazon-iam aws-lambda

0
推荐指数
1
解决办法
1789
查看次数

AWS Lambda基本打印功能

为什么我无法在控制台中创建 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

0
推荐指数
1
解决办法
9612
查看次数

从 getInitialProps 向 /api 文件夹发出请求

在我的应用程序中,我将请求发送到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/usershttps://d25q7fh11ll2cg.cloudfront.net/api/users但我运行时没有域数据(即) getInitialProps

我不想将域作为环境变量。还有另一种解决方案吗?此外,直接调用处理程序函数getInitialProps也是有问题的,因为处理程序仅使用服务器端包。谢谢

aws-lambda next.js serverless

0
推荐指数
1
解决办法
1964
查看次数

在 Cognito 中发布确认后将用户添加到组时出错

我已经在 中创建了一个用户池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

0
推荐指数
1
解决办法
1210
查看次数