我正在使用无服务器使用nodejs模板创建lambda函数。
serverless.yml。当我尝试时serverless invoke local -f functionName,它总是超时,因此我必须部署它进行测试。
是否可以在本地进行测试serverless?
amazon-web-services node.js amazon-elasticache aws-lambda serverless-framework
lambda中的代码:
import boto3
def lambda_handler(event, context):
s3_client = boto3.resource('s3')
mybucket = s3_client.Bucket('bucket-name')
for object in mybucket.objects.all():
print(object)
for key in s3_client.list_objects(Bucket='bucket-name')['Contents']:
print(key['Key'])'
Run Code Online (Sandbox Code Playgroud)
第一个“ for”块列出存储桶中的所有键,但是第二个“ for”块引发以下错误。
's3.Service Resource' object has no attribute 'list_objects' : AttributeError
Run Code Online (Sandbox Code Playgroud)
根据http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.list_buckets,这没有任何意义。关于可能是什么问题的任何提示?我使用了python 2.7和python 3.6
我正在尝试使用以下内容配置在特定日期/时间触发lambda函数的cloudwatch规则:
resource "aws_lambda_function" "cleanup_daily" {
filename = "name"
function_name = "name"
role = "arn<removed>"
handler = "snapshotcleanup.lambda_handler"
source_code_hash = "${base64sha256(file("file_name"))}"
runtime = "python2.7"
timeout = "20"
description = "desc"
}
resource "aws_cloudwatch_event_rule" "daily_rule" {
name = "name"
description = "desc"
schedule_expression = "cron(....)"
}
resource "aws_cloudwatch_event_target" "daily_target" {
rule = "${aws_cloudwatch_event_rule.daily_rule.name}"
arn = "${aws_lambda_function.cleanup_daily.arn}"
}
Run Code Online (Sandbox Code Playgroud)
但是lambda函数不运行.如果我查看lambda并检查触发器选项卡,那里什么也没有.如果我查看cloudwatch规则并查看Targets,则会显示lambda函数,如果单击它,我将重定向到函数本身.任何想法在这里可能有什么不妥
对于其中一个cloudwatch规则,我点击了编辑 - >保存 - >配置详细信息 - >更新而不更改任何内容,现在显示在lambda的触发器选项卡下,但仍然需要让其他人无法使用此步骤,
我正在构建一个服务,它将使用来自其他来源(服务)的数据.所以,我想使用以下管道: -
其他服务----> SNS主题----> SQS ----> AWS Lambda ----> Dynamo Db
那么,上面的流程说的是另一项服务将数据推送到SQS将成为订户的SNS主题.现在,AWS Lambda将在此SQS上触发一个触发器,该触发器将侦听SQS中的消息并将其推送到Dynamo Db.虽然看起来没问题.但现在我在想是否真的需要SQS.我可以避免使用它吗?AWS Lambda不是使用SQS,而是在SNS上直接触发.如果我不使用AWS SQS,我只想到一个案例.如果AWS Dynamo DB失败,它将如何处理该方案?我认为只有SNS,我会丢失一些消息,我的Dynamo Db处于失败状态,但如果我有SQS,那么这些消息将存储在SQS队列中.
如果我的理解是正确的,请告诉我.
非常感谢你的帮助.
amazon-sqs amazon-web-services amazon-sns amazon-dynamodb aws-lambda
问题:
1)我用“ Hello World”蓝图创建新的AWS状态机
2)点击创建状态机按钮
3)它打开一个对话框,然后选择IAM角色下拉列表为空,并且不显示与我的AWS帐户关联的现有IAM角色的列表
调试:
我发现在执行其他操作之前,加载仪表板本身时会引发JS错误。
JS错误:grapheneConsole_prod_963c8da….gz.js:110 POST https://us-west-2.console.aws.amazon.com/states/service/iam/createrole 403(禁止)
因此,我认为它假定用户具有我没有的“创建角色”权限。
如果有人以前遇到过这个问题并解决了。请帮我。
一些额外的信息:我正在使用分配给所有开发人员的公司AWS帐户。同样对于lambda或任何其他AWS资源,我们被赋予了我们应该使用的特定开发人员角色,而我在创建lambda的过程中已将其与其他所有功能成功地结合使用。如果它可以向我显示列表,那么我将选择相同的iam角色
amazon-ec2 amazon-web-services amazon-iam aws-lambda aws-step-functions
我能够设置localstack(https://github.com/atlassian/localstack)并在其中创建lambda函数(使用create-function ...命令).但是,我找不到在localstack中创建APIGateway的方法,以便可以使用它调用lambda函数.基本上,我需要一个APIGateway(及其arn),以便使用lambda函数可以调用.
我想要一个示例将AWS API Gateway与Step Function集成.我已阅读本教程使用API网关创建步骤函数API但该教程需要我以格式发送请求
{
"input": "{}",
"name": "PostmanExecution",
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:Custom"
}
Run Code Online (Sandbox Code Playgroud)
我想发送普通请求并仅在API网关中配置此stateMachineArn,以便客户端不需要发送它.
amazon-web-services aws-lambda aws-api-gateway aws-step-functions
我在AWS中创建了一些Lambda,并创建了Aurora RDS(公开可用)。我无法执行lambdas(通过call mysql.lambda_async)。
当我尝试得到错误时ERROR 1873: 1873: Lambda API returned error: Missing Credentials: Cannot instantiate Lambda Client。
我尝试附加一个名为aurora-lambdas的IAM角色,在其中我设置了对RDS和Lambdas的完全访问权限以及这些服务之间的可信任关系,但是在尝试了各种配置之后,我仍然遇到问题。
有人从RDS成功执行了AWS Lambda吗?谢谢 :)
我正在使用无服务器框架编写一些nodejs函数。该package.json文件需要一些依赖项:
{
"name": "adam-test-sls",
"version": "0.1.0",
"description": "Test package to play with sls/lambda",
"main": "handler.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Adam Matan <adam@binaris.com>",
"license": "UNLICENSED",
"dependencies": {
"aws-sdk": ">= 2.0.9",
"json": "^9.0.6",
"underscore": "^1.8.3",
"uuid": "^3.1.0"
},
"devDependencies": {
"eslint": "^4.2.0",
"eslint-config-airbnb": "^15.0.2",
"eslint-config-airbnb-base": "^11.2.0",
"eslint-plugin-import": "^2.7.0"
}
}
Run Code Online (Sandbox Code Playgroud)
node-modules目录的大小几乎为50mb:
# du -smc node_modules
47 node_modules
47 total
Run Code Online (Sandbox Code Playgroud)
压缩时间约为9.5MB,部署时间超过35秒:
# time serverless deploy function --function hello -v …Run Code Online (Sandbox Code Playgroud) 是否可以通过API Gateway端点调用AWS Step功能并监听响应(直到工作流完成并从结束步骤返回结果)?
目前,我能够从文档中找到步骤函数本质上是异步的,并在最后进行最终回调.我需要API调用响应从步骤函数流中获取最终结果而不进行轮询.
aws-lambda ×10
node.js ×2
amazon-ec2 ×1
amazon-iam ×1
amazon-rds ×1
amazon-s3 ×1
amazon-sns ×1
amazon-sqs ×1
boto3 ×1
dependencies ×1
npm ×1
python ×1
terraform ×1