我正在玩Cloudformation无服务器转换,并试图弄清楚如何以及何时使用AWS::Serverless::Function或AWS::Lambda::Function.出于某种原因,Lambda版本用于AWS中的SAM示例.这非常令人困惑.SAM github.然后还有servlerless框架本身,它实际上是一个nodejs框架.所有这些让我非常困惑.
尝试在Amazon POST请求中查找Signature和SignatureCertChainUrl标头,以使用刷新令牌续订访问令牌。我故意将访问令牌设置为在3600秒后过期:
var res = {
"access_token": access_token,
"refresh_token": refresh_token,
"expires_in": 3600,
"token_type": "bearer",
"state": state,
"scope": myScope
}
Run Code Online (Sandbox Code Playgroud)
然后应在访问令牌到期后向Alexa进行查询。但是,亚马逊没有按要求完成刷新令牌的请求(引用文档,“ Alexa还会使用刷新令牌来调用[访问] URI,以便在先前的令牌到期时获得新的访问令牌”)。
如何测试我的技能对使用刷新令牌获取新访问令牌的响应?
我们将创建一个允许用户控制Wi-Fi LED的Alexa技能.每次用户使用该技能时,我们希望我们可以在该技能的AWS Lambda函数中使用的SDK的回调中获取用户的帐户信息.
例如,用户登录到他的亚马逊帐户并使用他的Alexa-Enabled设备并说"Alexa,要求打开".然后,我们所做的技能将触发Lambda函数并传递用户的帐户详细信息,以便我们可以在我们的主机中检查该用户是否拥有该设备.
那么,在包含用户帐户信息的Alexa Skill Kit中使用的Java SDK中是否有回调?
谢谢!
我使用无服务器框架来部署我的lambda函数.无服务器使用API网关来创建我的端点.我知道可以在GET等方法中传递参数,并使用事件对象在lambda中使用它.前端已经部署,他们使用以下URL来调用端点:
example.com/api/EG43
`exports.myHandler = async function(event, context) {
...
// somehow access the URL which was used by the frontend
// to grab that EG43 and then return the result based on that key.
// return information to the caller.
}
Run Code Online (Sandbox Code Playgroud)
哪个EG43是前一个后端根据该键返回结果的键.我的问题是,如果可以以某种方式知道URL是什么.AWS的以下文档显示了可以使用处理程序参数读取的参数,但它没有URL.
https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
Liferay 6.2-ce-ga2
I'm trying to cluster two nodes, I'm using tomcat liferay bundle for both the nodes.
I used the following blog post as a reference and many others https://dev.liferay.com/discover/portal/-/knowledge_base/6-1/liferay-clustering
Both the nodes starts up as expected but they are not in sync. I dont have any errors on my console. I used the direct URL to login to a particular node and say, added an organization or published a web content article, which is not getting reflected when i …
我在尝试上传文件时在Lambda中收到此错误,
{
"errorMessage": "Cannot read property 'application' of undefined",
"errorType": "TypeError",
"stackTrace": [
"AlexaSkill.execute (/var/task/AlexaSkill.js:83:62)",
"exports.handler (/var/task/index.js:170:10)"
]
}
Run Code Online (Sandbox Code Playgroud)
看起来像AlexaSkill.js的第83行:
console.log("session applicationId: " + event.session.application.applicationId);
Run Code Online (Sandbox Code Playgroud)
session属性未定义.不确定是什么造成的
我打算为亚马逊Alexa构建一套技能,它将与我家中的RaspberryPi上运行的自定义软件套件集成.
我正在努力弄清楚如何让Echo/Dot本身直接对raspberry pi进行API调用 - 无需通过互联网,因为目标设备将只有内联网连接 - 它将能够接收来自本地网络上的设备的命令,但无法通过世界访问.
根据我的阅读,典型的工作流程如下
Echo -> Alexa Service -> Lambda
Run Code Online (Sandbox Code Playgroud)
Lambda函数将向智能家居设备返回一大块数据; 使用此返回值
是否有可能,在收到lambda的响应后,如何让Alexa设备本身向本地网络上的设备发出API请求?
我正在尝试调用Lambda函数并在完成时返回Promise,
但我得到以下错误:
“ createUser(...)。则不是函数”
const createUser = (phone) => {
return lambda.invoke({
FunctionName: 'createUser',
Payload: JSON.stringify({"phone": phone})
}, (err, data) => {
let payload = JSON.parse(data.Payload);
if (payload.statusCode != 200) {
Promise.reject(payload);
}
Promise.resolve(payload);
})
}
createUser('')
.then(res => console.log(res))
.catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)
已经尝试使用以下方式声明新的Promise:
let promise = new Promise((resolve, reject) => {...})
Run Code Online (Sandbox Code Playgroud)
但这也不起作用...
我正在尝试将 Mongodb 模块静态编译为 PHP。
我已经使用此处的说明成功编译了 PHP(没有 Mongodb 模块): https: //aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/
然后我使用此处的说明编译 Mongodb 驱动程序:http://php.net/manual/en/mongodb.installation.manual.php。模块 mongodb.so 已生成并成功存储在 PHP 源文件中。
但是为了重新编译 PHP 以捆绑 Mongodb 模块,我尝试了以下说明http://php.net/manual/en/install.pecl.static.php,但我不知道需要哪个标志用于使用 Mongodb 模块编译 PHP。
我尝试过--with-mongodb、--with-mongo、--enable-mongodb和--enable-mongo但这些都不是有效的标志。
有人能好心帮我解决这个问题吗?
提前谢谢了。
我正在尝试使用AWS docs中描述的Log4J2日志记录:
https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j2.8
<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
<Appenders>
<Lambda name="Lambda">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
</PatternLayout>
</Lambda>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Lambda" />
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
错误 但是在运行lambda时出现以下错误:(我删除了下面的时间戳以提高可读性)
ERROR Error processing element Lambda ([Appenders: null]): CLASS_NOT_FOUND
ERROR Unable to locate appender "Lambda" for logger config "root"
Run Code Online (Sandbox Code Playgroud)
试过
我确信,log4j的库和log4j-core,log4j-api,aws-lambda-java-log4j2并aws-lamda-java-core都在包中.