我正在寻找一种方法来访问用户在 python Lambda 函数代码中对 Lex 提出的实际问题(或话语)。当我打印event参数时,lambda_handler(event, context)我看到打印以下内容:
input_request={'messageVersion': '1.0', 'invocationSource': 'FulfillmentCodeHook', 'userId': 'user1', 'sessionAttributes': None, 'bot': {'name': 'bot_name', 'alias': None, 'version': '$LATEST'}, 'outputDialogMode': 'Text', 'currentIntent': {'name': 'bo1', 'slots': {'Time': '10:00','Date': '2017-06-20'}, 'confirmationStatus': 'Confirmed'}, 'inputTranscript': 'yes'}
Run Code Online (Sandbox Code Playgroud)
我没有看到任何选项可以访问用户提出的实际问题,甚至是与该特定问题匹配的话语。如果我错过了它,有没有办法做到这一点?
我正在尝试将google 分析初始化调用嵌入到 AWS Lambda 函数中。我得到了一个例外ReferenceError: window is not defined,因为没有浏览器窗口,所以这是有道理的。有没有办法初始化脚本,以便我可以ga()在 AWS Lambda 中进行调用?
谢谢!
javascript lambda google-analytics amazon-web-services aws-lambda
我查看了其他一些答案,但确实无法正常工作。
我想从 Alexa 调用 lambda - 这很好,并给了我一个回应。我想将此响应基于对 http GET Web 服务的调用。到目前为止,我已经获得了以下代码(已更新以显示完整的 lambda 代码):
/**
Copyright 2016 Brian Donohue.
*/
'use strict';
// Route the incoming request based on type (LaunchRequest, IntentRequest,
// etc.) The JSON body of the request is provided in the event parameter.
exports.handler = function (event, context) {
try {
console.log("event.session.application.applicationId=" + event.session.application.applicationId);
/**
* Uncomment this if statement and populate with your skill's application ID to
* prevent someone else from configuring a skill that sends …Run Code Online (Sandbox Code Playgroud) 根据 AWS 文档,我可以创建一个新的 lambda 函数别名,例如:
aws lambda create-alias \
--region us-west-2 \
--function-name helloworld \
--description "sample alias" \
--function-version "\$LATEST" \
--name DEV \
--profile adminuser
据我了解,此命令基本上将代码部署到最新的 lambda 别名。所以我相信一旦我部署它,它就会变得活跃。但我会在让它上线之前对其进行测试。我的问题是,将它置于中间阶段以便它可以等到我的 Jenkins 测试完成然后激活它的最简单方法是什么?我应该创建另一个像 $PRE_LATEST 这样的函数版本吗?
我boto3在 python 中为我的 lambda 函数导入。当我测试 lambda 时,它给出了这个错误:No module named boto3这是意料之中的。然后我参考了文档,确切地说是这个链接https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html并意识到我需要创建部署包的问题是我对文档的理解不够好,无法跟上,并希望已经完成所需步骤的人以更简单的方式再次解释它们。
我试图在AWS上创建一个lambda函数来启动和停止EC2实例,但是它给出了以下错误
botocore.exceptions.ClientError: An error occurred (UnauthorizedOperation) when calling the StartInstances operation: You are not authorized to perform this operation.
Run Code Online (Sandbox Code Playgroud)
我应采取哪些步骤来阻止此错误?我不是开发人员,只是试图通过EC2运行一些ML模型.我阅读了有关创建IAM角色的内容,我使用完全EC2访问权限,但我不确定如何在lambda函数中使用相同的内容.任何人都可以指导我吗?
有没有办法在控制台中编辑AWS Lambda层的代码?
是否可以像lambda一样在控制台中更新图层的代码?
任何人都可以解释在调用DocumentClient.get时如何使用GetItemInput类型,如果我传入任何类型的对象都可以工作,但是如果我尝试强烈键入params对象,则会收到错误消息
ValidationException:提供的键元素与架构不匹配
这是我的lambda函数代码,我在其中传递参数作为任何类型...
export const get: Handler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
console.log(event.pathParameters)
if (!event.pathParameters) {
throw Error("no path params")
}
const params: any = {
Key: {
id: event.pathParameters.id
},
TableName: table
}
console.log(params)
try {
const result: any = await dynamoDb.get(params).promise()
return {
body: JSON.stringify(result.Item),
statusCode: result.$response.httpResponse.statusCode
}
} catch (error) {
console.log(error)
return {
body: JSON.stringify({
message: `Failed to get project with id: ${event.pathParameters!.id}`
}),
statusCode: 500
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试使其与GetItemInput类型一起使用 …
amazon-web-services amazon-dynamodb aws-sdk aws-lambda aws-sdk-js
我发现一个有4年历史的项目应该在mbda上安装phantomjs,但是我做错了什么,或者自从创建回购以来事情已经发生了变化,并且不再起作用。克隆并部署此存储库时,尝试运行phantomjs时出现此错误:
{
"errorType": "Error",
"errorMessage": "write EPIPE",
"code": "EPIPE",
"stack": [
"Error: write EPIPE",
" at WriteWrap.afterWrite [as oncomplete] (net.js:779:14)"
],
"errno": "EPIPE",
"syscall": "write"
}
{
"errorType": "Error",
"errorMessage": "html-pdf: Received the exit code '127'\n./phantomjs_lambda/phantomjs_linux-x86_64: error while loading shared libraries: libfreetype.so.6: cannot open shared object file: No such file or directory\n",
"stack": [
"Error: html-pdf: Received the exit code '127'",
"./phantomjs_lambda/phantomjs_linux-x86_64: error while loading shared libraries: libfreetype.so.6: cannot open shared object file: No such file or directory", …Run Code Online (Sandbox Code Playgroud) 我试图从另一个调用一个AWS Lambda并执行Lambda链接。这样做的基本原理是,AWS不提供来自同一S3存储桶的多个触发器。
我创建了一个带s3触发器的lambda。第一个lambda的Java代码将侦听S3事件,并包含另一个lambda的调用。第二个lambda将从第一个lambda调用。两种lambda的创建都是通过terraform完成的。
Lambda A具有S3触发器。这将在特定存储桶上的S3事件上调用。Lambda A将进行处理,并使用调用请求来调用LambdaB。来自Lambda A的Lambda B调用Java中的代码是:
public class EventHandler implements RequestHandler<S3Event, String> {
@Override
public String handleRequest(S3Event event, Context context) throws RuntimeException {
InvokeRequest req = new InvokeRequest()
.withFunctionName("LambdaFunctionB")
.withPayload(json);
return "Lambda B invoked"
}
}
Run Code Online (Sandbox Code Playgroud)
两个lambda都是使用terraform创建的。以下脚本:
Lambda terraform:
module "lambda_function" {
source = "Git Path"
absolute_artifact_path = "../lambda.jar"
lambda_function_name = "LambdaFunctionA"
lambda_function_description = ""
lambda_function_runtime = "java8"
lambda_handler_name = "EventHandler"
lambda_execution_role_name = "lambda-iam-role"
lambda_memory = "512"
dead_letter_target_arn = "error-handling-arn"
}
resource "aws_lambda_permission" "allow_bucket" {
statement_id = "statementId" …Run Code Online (Sandbox Code Playgroud) aws-lambda ×10
lambda ×2
node.js ×2
alexa ×1
alias ×1
amazon-ec2 ×1
amazon-lex ×1
aws-iam ×1
aws-sdk ×1
aws-sdk-js ×1
javascript ×1
jenkins ×1
python ×1
terraform ×1
web-services ×1