我正在尝试使用AWS Lambda Python(Python btw中的初学者)启动并运行,但在包含MySQL依赖项方面存在一些问题.我试图按照指示在这里我的Mac上.
对于第3步,我在项目的根目录下执行命令会遇到一些问题
sudo pip install MySQL-python -t /
Run Code Online (Sandbox Code Playgroud)
错误:
例外:回溯(最近一次调用最后一次):文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py",第122行,处于主状态= self .run(options,args)在运行os.path中的文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py",第311行. join(options.target_dir,item)文件"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",第292行,移动引发错误,"目标路径"%s '已存在'%real_dst错误:目标路径'/MySQL_python-1.2.5-py2.7.egg-info/MySQL_python-1.2.5-py2.7.egg-info'已存在
我最终编写了以下lambda函数(在我的Mac上运行正常),这是:
import MySQLdb
def lambda_handler(event, context):
# Open database connection
db = MySQLdb.connect(...)
# prepare a cursor object using cursor() method
cursor = db.cursor()
sql = "SELECT * FROM Users"
try:
# Execute the SQL command
cursor.execute(sql)
# Fetch all the rows in a list of lists.
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age …Run Code Online (Sandbox Code Playgroud) 似乎我的问题可能与此类似.
我的API网关中有一个API,我正在通过POST的multipart/form-data文件的端点进行HTTP代理.
如果我直接调用http端点(而不是通过API网关) - 使用邮递员,它按预期工作,但是,使用API网关端点(通过邮递员)失败.
我已经比较了两个似乎相同的请求(通过fiddler和CloudWatch日志):
请求直接API调用(工作):
POST https://domainname/api/v1/documents HTTP/1.1
Host: api.service
Connection: keep-alive
Content-Length: 202
Authorization: AuthToken
Postman-Token: a75869d6-1d64-6b9f-513d-a80ac192c8e1
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
docMetaInfo: some extra data needed
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryB85rsPlMffA2fziS
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
------WebKitFormBoundaryB85rsPlMffA2fziS
Content-Disposition: form-data; name=""; filename="Test.txt"
Content-Type: text/plain
This is a test Text File
------WebKitFormBoundaryB85rsPlMffA2fziS--
Run Code Online (Sandbox Code Playgroud)
来自API网关的请求(不工作):
POST https://GATEWAY_domainname/api/v1/documents HTTP/1.1
Host: api-Gateway.service
Connection: keep-alive
Content-Length: 202
Authorization: …Run Code Online (Sandbox Code Playgroud) 我创建了一个启用了新函数 URL功能的 AWS Lambda。
由于 URL 不太容易记住,我想创建一个 Route 53 别名,例如lambda.mywebsite.com。
Route 53 别名的下拉菜单中没有 Lambda 函数 URL 的 Route 53 别名。
如何通过自定义域调用我的 AWS Lambda 函数 URL?
CNAME 记录是正确的选择吗?
我有一个用node.js express开发的移动应用程序后端.我尝试将其部署为lambda服务.为此,我创建了一个无服务器框架项目(https://github.com/serverless).之前我通过启动快速后端应用程序在本地测试了移动应用程序.现在我找不到一种方法来在没有本地后端的情况下在本地测试我的移动应用程序.jaws run命令只在我调用它时运行.
是否有任何方法可以将lambda函数作为Web服务启动?或者是否有无服务器框架的替代方案?
python amazon-web-services node.js aws-lambda serverless-framework
我在亚马逊的ApiGateway创建了一个资源.它指向Lambda函数.这是受到本机移动应用程序(android和ios)的影响,它已经在野外.
我现在想要修改Lambda函数,但我认为无法将我的ApiGateway资源更改为指向lambda的别名.这是我第一次使用这些技术,我发现在aws控制台中没有简单的机制来管理它.
如何修改我的ApiGateway资源以指向我的lambda别名,以便我可以在不影响现有客户端的情况下编辑主干?
我想知道在Word API网关上将wordpress部署为一系列lambda函数是否可行.关于可行性/陷阱的任何指示将不胜感激!
提前致谢,
库尔德工人党
我正在尝试在AWS中创建IAM角色,但在创建时我遇到了错误
"我们在处理您的请求时遇到以下错误:在添加角色权限时出现问题.将在未经许可的情况下创建角色.策略未能通过旧版解析"
{"Version": "2012-10-17", "Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Action": [
"sqs:SendMessage",
"sqs:GetQueueUrl"
],
"Effect": "Allow",
"Resource": "arn:aws:sqs:ap-northeast-1:SOME_ID_HERE:test-messages"
}]}
Run Code Online (Sandbox Code Playgroud) 如何从AWS dynamodb使用中获取/扫描所有项目node.js.我在这里发布我的代码.
var docClient = new aws.DynamoDB.DocumentClient();
var params = {
TableName:"users",
KeyConditionExpression:"user_status=:status",
ExpressionAttributeValues: {
":status": "Y"
}
};
var queryExecute = function(callback) {
docClient.query(params,function(err,result) {
if(err) {
console.log(err)
callback(err);
} else {
console.log(result);
if(result.LastEvaluatedKey) {
params.ExclusiveStartKey = result.LastEvaluatedKey;
queryExecute(callback);
} else {
callback(err,items);
}
}
});
}
queryExecute(callback);
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误.
ValidationException: Query condition missed key schema element: `user_id`.
Run Code Online (Sandbox Code Playgroud)
这里的主键是user_id.我不想在查询条件中使用它,因为如果我提到主键,我需要设置一个值KeyConditionExpression.可能是我错了.但是请建议我一个很好的方法来获取所有项目dynamodb,这是有的user_status = "Y"
我正在开发一个无服务器的无需项目,需要在本地测试lambda函数.
我正在使用serverless invoke local -f {function_name}命令来测试不请求任何路径或查询参数的API调用.
我的问题是如何使用此命令将任何路径或查询参数传递给函数?
示例无服务器描述
getFoodDetails:
handler: handler.getFoodDetails
events:
- http:
method: get
path: /foods/{food_id}
cors: true
request:
parameters:
paths:
food_id: true
Run Code Online (Sandbox Code Playgroud) 获取错误 fork/exec /var/task/main: 执行 lambda 函数时没有这样的文件或目录。
我正在使用 Windows 平台在 Go 中运行和构建代码。
我已完成以下步骤来部署 go aws-lambda 处理程序:
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/lambda"
)
// Request represents the requested object
type Request struct {
ID int `json:"ID"`
Value string `json:"Value"`
}
// Response represents the Response object
type Response struct {
Message string `json:"Message"`
Ok bool `json:"Ok"`
}
// Handler …Run Code Online (Sandbox Code Playgroud) aws-lambda ×10
node.js ×2
python ×2
amazon-iam ×1
amazon-s3 ×1
go ×1
handler ×1
mysql ×1
python-2.7 ×1
wordpress ×1