我正在尝试创建一个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)
我已经更新了所有的NuGet软件包,并安装了AWSSDK.S3 v3.3.5.3软件包。当我浏览对象浏览器时,我只会看到异步方法。在文档中没有提到PutObject方法的清单。谁能指出我为什么行不通的正确方向?
背景: 我每隔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) 我正在使用AWSLambdaClient.createFunction()。已弃用。
请让我知道,这有什么替代方法。
AWSLambdaClient lclient = new AWSLambdaClient(Credentials);
..
..
lclient.createFunction(request);
Run Code Online (Sandbox Code Playgroud) 我在本地拥有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?
我还想确保我的变量永远不会以纯文本形式传输(即加密发生在本地),如果可能的话.
我有一个Python Lambda函数来处理IoT Things的触发器.
有没有办法读取context交给处理函数(用Boto 3)来识别触发事物的名称 - 例如thingName提供给的那个get_thing_shadow?
我正在使用以下AWS技术构建无服务器后端:
在api_gateway中,我创建了一个Cognito用户池授权程序,我使用此授权程序来处理对后端的所有请求.
一切正常:当用户使用无效的JWT令牌发出请求时,服务器会相应地做出响应.有效的JWT令牌执行请求的Lambda函数.
问题:我无法检索identity信息,如accessKey,accountId,cognitoIdentityId等等.所有这些变量都是null我通过contextlambda函数中的对象访问它们的时候
问题:为了获得identity变量,我需要做什么?
无服务器框架是否支持将相同的API部署到多个云提供商(AWS,Azure和IBM)并根据传统的负载均衡器方法(即循环或延迟)将请求路由到每个提供商?
无服务器框架是否直接支持此功能?
无服务器是否与全局负载平衡器(例如dyn或neustar)集成?
aws-lambda serverless-framework openwhisk azure-functions serverless-architecture
我是Lambda的新手并试图弄清楚如何处理Lambda函数中的Stripe电荷.
我的应用程序从Stripe API创建令牌,现在我需要将该令牌发送到Lambda函数来执行Stripe.customers.create和Stripe.charges.create.
以下是我遇到的问题
我不知道如何加载<script type="text/javascript" src="https://js.stripe.com/v2/"></script>Lambda函数,所以我可以使用Stripe函数
很想得到一个示例代码,通过令牌收取信用卡
谢谢.
javascript lambda amazon-web-services stripe-payments 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
可能听起来像一个奇怪的问题,但在这里忍受我.
我需要建立一个小型的Web项目.为了使其免费,我将在S3上作为静态站点托管前端部分,并通过对lambda函数中托管的REST API进行AJAX调用来调用服务器端函数.我之前已经为自己做了一个webapp,但是我记得它在发生交叉原始请求时引起了复杂化,最后我决定使用JSONP.这个设置有问题吗?我听说JSONP可能是一个安全问题,这个新网站是供公众使用的.
我的替代设置是在承载站点和后端的lightail上构建服务器.显然,这可能是更正确的做事方式,但稍微多一些钱.
哪种方法可能是更好的选择?
附加问题:是否可以设置CORS,因此我不必使用JSONP进行跨源请求?我对CORS有点不熟悉.
amazon-s3 amazon-web-services cors aws-lambda amazon-lightsail
aws-lambda ×10
aws-sdk ×2
boto3 ×2
amazon-s3 ×1
aws-cli ×1
aws-cognito ×1
aws-iot ×1
c# ×1
cors ×1
encryption ×1
iot ×1
java ×1
javascript ×1
lambda ×1
openwhisk ×1
python ×1
python-3.x ×1