我正在完成教程"演练2:处理Amazon S3事件(Node.js)".我有关于CLI参数的问题:
aws lambda add-permission \
--function-name CreateThumbnail \
--region us-west-2 \
--statement-id some-unique-id \
--action "lambda:InvokeFunction" \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::sourcebucket \
--source-account bucket-owner-account-id \
--profile adminuser
Run Code Online (Sandbox Code Playgroud)
参数是什么--statement-id some-unique-id?
我已经创建了一个简单的Lambda函数来调用一个网页,当我从函数页面测试它时工作正常但是当试图创建一个技能来调用这个函数时我最终得到了一个"无法调用远程端点,或者它返回的回复无效." 错误.
Lambda函数
var http = require('http');
exports.handler = function(event, context) {
console.log('start request to ' + event.url)
http.get(event.url, function(res) {
console.log("Got response: " + res.statusCode);
context.succeed();
}).on('error', function(e) {
console.log("Got error: " + e.message);
context.done(null, 'FAILURE');
});
console.log('end request to ' + event.url);
}
Run Code Online (Sandbox Code Playgroud)
测试事件代码如下所示:
{
"url": "http://mywebsite.co.uk"
}
Run Code Online (Sandbox Code Playgroud)
我添加了"Alexa Skills Kit"的触发器.
此功能的ARN显示为:
阿尔恩:AWS:波长:美东1:052516835015:功能:CustomFunction
Alexa Skill(开发者门户网站)
然后我创建了一个简单的Intent技能:
{
"intents": [
{
"intent": "CustomFunction"
}
]
}
Run Code Online (Sandbox Code Playgroud)
并创造了一个话语:
CustomFunction execute my custom function
Run Code Online (Sandbox Code Playgroud)
在我的技术配置部分,我选择了"AWS Lambda ARN(亚马逊资源名称)"选项,并将ARN输入到北美的框中.
在测试 - >服务模拟器部分,我添加了"执行我的自定义函数"作为文本,这将更改Lambda请求显示:
{ …Run Code Online (Sandbox Code Playgroud) 尝试更新aws cli中的cloudformation堆栈时:
aws --profile dev cloudformation update-stack --stack-name mystackname --template-body file://events-list.yaml
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
An error occurred (ValidationError) when calling the UpdateStack operation: UpdateStack cannot be used with templates containing Transforms.
Run Code Online (Sandbox Code Playgroud)
因为我使用AWS无服务器转换进行lambda函数部署
Transform: 'AWS::Serverless-2016-10-31'
Run Code Online (Sandbox Code Playgroud)
是否有CLI方式来执行此堆栈更新,或者我将不得不在GUI中处理我的APM.
我正在尝试创建云层堆栈.堆栈已正确部署.已创建Lambda函数,但代码未作为内联函数添加到函数中.
它说
您的Lambda函数"lambda_function"无法内联编辑,因为处理程序中指定的文件名与部署包中的文件名不匹配.
云形成代码:
LambdaFunction:
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: !Sub |
import json
def lambda_handler(event,context):
#Creating delete request
...
Description: Lambda function.
FunctionName: lambda_function
Handler: lambda_function.lambda_handler
Role : !GetAtt LambdaExecutionRole.Arn
Runtime: python2.7
Timeout: 5
Run Code Online (Sandbox Code Playgroud) 我只是AWS的初学者。我需要了解lambda支持。我正在使用PHP。
lambda是否支持PHP?如果没有,是否还有其他支持PHP的替代解决方案?
AWS API-Gateway的请求 - 有效负载限制是多少?
我需要将带有base64编码文件和一些其他参数的JSON有效负载发送到API网关,然后将有效负载传递给AWS Lambda.
我找不到关于此的AWS文档.
我希望使用API Gateway + Lambda + Cognito用户池来构建一个简单的REST API.
API将以两种方式使用.第一个是支持基本的Web应用程序(托管在CloudFront + S3上).Web应用程序的身份验证使用托管的Cognito登录/注册流程,并且工作正常(使用API网关设置来使用用户池身份验证器).
第二种方法是让客户使用REST API与系统进行通信.
例如,客户端可能使用Web应用程序配置工作流,然后使用API来调用该工作流.
验证API以与后端服务一起使用的推荐方法是什么?
传统上,我希望为此目的使用API密钥+秘密令牌.我在API网关界面中创建API密钥没有问题,但我无论如何都看不到将其链接到特定用户,也看不到任何在API密钥旁边指定秘密令牌的方法.
假设以上是可能的,我将如何设置它以便我可以使用基于JWT的Web应用程序方法和API密钥+秘密令牌供客户使用.
编辑:此外,我注意到应用程序客户端有一个ID和一个秘密.它们是否打算用于第三次基于API的身份验证(类似于其他系统如何使您为API访问创建应用程序)?我有点怀疑,因为每个用户池有25个限制,虽然这是一个软限制......
authentication rest amazon-cognito aws-lambda aws-api-gateway
如何使用C#在Lambda中存储和访问文件我使用了lambda可用的tmp文件夹,但是我收到了无法加载文件或程序集的错误.我该如何解决错误?我使用了ADP nuget.
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(reportLine, Path.GetTempPath() +
"sample_auth.key");
}
Run Code Online (Sandbox Code Playgroud)
我用它将文件下载到lambda的tmp文件夹中.我没有在字符串保密中包含其他配置,但您可以检查下面的github以获得完全相同的样本.
string config = @"{
""sslCertPath"": ""/tmp/sample.pfx"",
""sslKeyPath"": ""/tmp/sample_auth.key"",
}";
ADPAccessToken token = null;
if (String.IsNullOrEmpty(clientconfig))
{
Console.WriteLine("Settings file or default options not available.");
}
else
{
ClientCredentialConfiguration connectionCfg = JSONUtil.Deserialize<ClientCredentialConfiguration>(clientconfig);
ClientCredentialConnection connection = (ClientCredentialConnection)ADPApiConnectionFactory.createConnection(connectionCfg);
//context.Logger.Log(ADPApiConnection.certificatepath);
//context.Logger.Log(clientconfig);
try
{
connection.connect();
if (connection.isConnectedIndicator())
{
token = connection.accessToken;
// context.Logger.Log("Connected to API end point");
// //Console.WriteLine("Token: ");
// //Console.WriteLine(" AccessToken: {0} ", token.AccessToken);
// //Console.WriteLine(" TokenType: {0} ", …Run Code Online (Sandbox Code Playgroud) 我需要从S3下载照片(不在同一目录中),将其压缩,然后再次使用AWS S3 Java SDK上传到S3。该zip文件大小可以以GB为单位。目前,我正在使用AWS Lambda,它的临时存储限制为最大500 MB。因此,我不想将ZIP文件保存在磁盘上,而是想将ZIP文件(使用从S3下载的照片动态创建的ZIP文件)直接传输到S3。我需要使用AWS S3 Java SDK。
我们正在使用NodeJS通过Google Speech-to-Text API处理较长的成绩单。许多功能需要10分钟以上的时间来处理。处理/音频时间的通常比例约为50%。因此,一个20分钟的FLAC音频文件需要大约10分钟的处理时间(因此,在Google Cloud Functions上失败,最大时间为540秒或9分钟),而超过29分钟的任何时间在AWS Lambda上都会失败。
每个平台上有哪些服务可以在20/30分钟内处理音频文件,还可以发送事件数据并调用应用程序?我可以混合使用云功能和其他平台来处理成绩单吗?
javascript amazon-web-services google-cloud-platform aws-lambda google-cloud-functions
aws-lambda ×10
amazon-s3 ×3
aws-cli ×2
alexa-skill ×1
aws-java-sdk ×1
c# ×1
java ×1
javascript ×1
payload ×1
rest ×1