标签: aws-lambda

适用于.NET的AWS开发工具包-IAmazonS3不包含'PutObject'的定义

我正在尝试创建一个Lambda函数,该函数将允许用户将文档上传到S3。为此,我遵循SDK的文档,其中说有一种方法“ PutObject”可以让我将对象放入存储桶中。当我对此进行编码时,出现以下编译错误:

IAmazonS3不包含“ PutObject”的定义,并且找不到找到接受类型为“ IAmazonS3”的第一个参数的扩展方法“ PutObject”。

这是我目前正在使用的代码:

S3Client = new AmazonS3Client("*********", "**********************", Amazon.RegionEndpoint.USEast1);
PutObjectRequest putRequest = new PutObjectRequest();
putRequest.BucketName = _bucket;
putRequest.ContentType = ContentType;
putRequest.ContentBody = Bytes;
var s3Response = S3Client.PutObject(putRequest);
return s3Response.HttpStatusCode.ToString();
Run Code Online (Sandbox Code Playgroud)

我已经更新了所有的Nu​​Get软件包,并安装了AWSSDK.S3 v3.3.5.3软件包。当我浏览对象浏览器时,我只会看到异步方法。在文档中没有提到PutObject方法的清单。谁能指出我为什么行不通的正确方向?

c# amazon-web-services aws-sdk aws-lambda

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

在代码中考虑Lambda热启动?

背景: 我每隔15分钟调用一个特定的Lambda函数来启动我的EC2实例.这通过查询标记的值来工作,如果该值与当前时间匹配,则将实例添加到要启动的实例列表中.

问题:然而,该功能仅在每四个小时工作一次,因为它经常被调用而保持"温暖".虽然函数是热的,但我在当前时间所拥有的变量 - 调用的时间 - 在温暖的环境中保持不变,并且永远不会更新到当前的,实际的,真正实际的实时时间.见下面的代码.

# This lambda script start EC2 instances

import boto3
import logging
from datetime import datetime, time

ec = boto3.resource('ec2')

startup = datetime.now().strftime('%H%M')
now = int(startup)
minutes = [now-5,now-4,now-3,now-2,now-1,now]
logger = logging.getLogger()
logger.setLevel(logging.ERROR)

print 'The current time is: %s' % (startup)

def lambda_handler(event, context):
    for min in minutes:
        wave = ec.instances.filter(
            Filters=[
                {'Name': 'instance-state-name', 'Values': ['stopped']},
                {'Name': 'tag:Autostop', 'Values': ['%d' % (min)]}
            ]
        )
        for i in wave:
            iid = (i.instance_id)
            for t …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-lambda

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

什么是AWSLambdaClient的替代品

我正在使用AWSLambdaClient.createFunction()。已弃用。

请让我知道,这有什么替代方法。

AWSLambdaClient lclient = new AWSLambdaClient(Credentials);
..
..
lclient.createFunction(request);
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services aws-sdk aws-lambda

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

如何使用AWS CLI设置加密的Lambda环境变量?

我在本地拥有AWS Lambda环境变量,希望使用特定的KMS密钥加密并分配给Lambda函数.

我以为有点像

aws lambda update-function-configuration --function-name functionName --cli-input-json file://config.json
Run Code Online (Sandbox Code Playgroud)

与config.jsonas

{
  "Environment": {
    "Variables": {
      "var01": "Variable one",
      "var02": "Variable two"
    }
  },
  "KMSKeyArn": "arn:aws:kms:us-west-1:09238573743:key/...."
}
Run Code Online (Sandbox Code Playgroud)

会做到这一点.但变量最终没有加密."KMSKeyArn"似乎只用于解密(例如在函数的处理程序中boto3.client('kms').decrypt).

如何使用AWS CLI获取理想情况下在JSON上指定的本地(未加密)值,并使用特定的KMS密钥将它们指定为Lambda函数环境变量的加密值(并确保将相同的密钥分配给函数以供boto3.client('kms').decrypt?

我还想确保我的变量永远不会以纯文本形式传输(即加密发生在本地),如果可能的话.

encryption amazon-web-services aws-cli aws-lambda

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

我可以检索触发我的Lambda函数的AWS IoT Thing的名称吗?

我有一个Python Lambda函数来处理IoT Things的触发器.

有没有办法读取context交给处理函数(用Boto 3)来识别触发事物的名称 - 例如thingName提供给的那个get_thing_shadow?

iot boto3 aws-lambda aws-iot

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

AWS Lambda,API网关和Cognito:如何在lambda函数中获取标识对象?

我正在使用以下AWS技术构建无服务器后端:

  • AWS api_gateway
  • AWS认知
  • AWS lambda

在api_gateway中,我创建了一个Cognito用户池授权程序,我使用此授权程序来处理对后端的所有请求.

一切正常:当用户使用无效的JWT令牌发出请求时,服务器会相应地做出响应.有效的JWT令牌执行请求的Lambda函数.

问题:我无法检索identity信息,如accessKey,accountId,cognitoIdentityId等等.所有这些变量都是null我通过contextlambda函数中的对象访问它们的时候

问题:为了获得identity变量,我需要做什么?

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

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

无服务器框架是否支持任何类型的多云负载平衡?

无服务器框架是否支持将相同的API部署到多个云提供商(AWS,Azure和IBM)并根据传统的负载均衡器方法(即循环或延迟)将请求路由到每个提供商?

无服务器框架是否直接支持此功能?

无服务器是否与全局负载平衡器(例如dyn或neustar)集成?

aws-lambda serverless-framework openwhisk azure-functions serverless-architecture

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

AWS Lambda流程条带费用

我是Lambda的新手并试图弄清楚如何处理Lambda函数中的Stripe电荷.

我的应用程序从Stripe API创建令牌,现在我需要将该令牌发送到Lambda函数来执行Stripe.customers.create和Stripe.charges.create.

以下是我遇到的问题

  1. 我不知道如何加载<script type="text/javascript" src="https://js.stripe.com/v2/"></script>Lambda函数,所以我可以使用Stripe函数

  2. 很想得到一个示例代码,通过令牌收取信用卡

谢谢.

javascript lambda amazon-web-services stripe-payments aws-lambda

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

如何使用python asyncio从EC2实例调用AWS Lambda函数

我最近发布了一个有关如何仅允许从VPC内的EC2实例调用AWS Lambda函数的问题。通过将带有“ AWS lambda角色”策略的IAM角色附加到EC2实例,我设法使其正常工作,现在我可以使用boto3调用lambda函数。

现在,我想使用asyncio await语法异步调用lambda函数。我读到lambda函数通过设置提供了一个异步版本InvokeType='Event',但是实际上使调用立即返回而没有得到函数的结果。

由于函数需要一些时间,因此我想并行启动许多函数,因此我想避免在等待函数返回时阻塞执行。

我尝试使用aiobotocore,但这仅支持基本的“ s3”服务功能。

解决这个问题的最佳方法(谦虚)是使用AWS API Gateway服务通过GET / POST请求调用lambda函数,该请求可以使用aiohttp轻松处理。

但是,我无法使其正常运行。

我在EC2 IAM角色中添加了策略“ AmazonAPIGatewayInvokeFullAccess”,但每次尝试执行以下操作:

import requests
r = requests.get('https://url_to_api_gateway_for_function')
Run Code Online (Sandbox Code Playgroud)

我得到禁止的回应<Response [403]>。

我直接使用lambda函数中的触发器创建了API网关。

我还尝试编辑API网关设置,方法是在函数路径中添加post方法并设置“ AWS_IAM”身份验证,然后将其部署为“ prod”部署。仍然是相同的禁止响应。当我通过“ API网关上的测试屏幕”对其进行测试时,它可以正常工作。

任何想法如何解决这个问题?我错过了一步吗?

amazon-web-services python-3.x python-asyncio boto3 aws-lambda

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

Lightsail与Lambda + S3

可能听起来像一个奇怪的问题,但在这里忍受我.

我需要建立一个小型的Web项目.为了使其免费,我将在S3上作为静态站点托管前端部分,并通过对lambda函数中托管的REST API进行AJAX调用来调用服务器端函数.我之前已经为自己做了一个webapp,但是我记得它在发生交叉原始请求时引起了复杂化,最后我决定使用JSONP.这个设置有问题吗?我听说JSONP可能是一个安全问题,这个新网站是供公众使用的.

我的替代设置是在承载站点和后端的lightail上构建服务器.显然,这可能是更正确的做事方式,但稍微多一些钱.

哪种方法可能是更好的选择?

附加问题:是否可以设置CORS,因此我不必使用JSONP进行跨源请求?我对CORS有点不熟悉.

amazon-s3 amazon-web-services cors aws-lambda amazon-lightsail

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