我正在 Visual Studio 中开发 Alexa Skills Kit 应用程序,并在 .NET Core 2.0 中创建了 AWS Lambda 项目。创建项目时,它会自动附带一个名为 aws-lambda-tools-defaults.json 的文件。此处的设置由 AWS Lambda 函数使用。
现在,我想存储我自己的应用程序设置和连接字符串以供应用程序使用。如何存储我的设置并将其写入代码的首选途径是什么?
我已经添加了名为 Microsoft.Extensions.Configuration.Json 的 NuGet 包。但我不确定我从这里做什么。
1) 我是否需要创建另一个 json 文件,或者我可以使用现有文件 aws-lambda-tools-defaults.json 吗?如果我确实需要创建一个新文件,它应该被命名为什么?
2)是否需要将构造函数添加到 Function.cs 文件中才能加载 json 文件?
3)我可以编写哪些代码来实际获取我的设置和连接字符串?
我在这里有点迷失,所以任何建议都会很有帮助!谢谢你!
json amazon-web-services visual-studio .net-core alexa-skills-kit
我正在使用基于在线的Amazon Alexa Console 测试套件和AWS Lambda来开发 Alexa 技能。如何访问 的内容console.log('STATE: ' + stateAbbreviation)?
Lambda函数代码:
function getSmallImage(stateAbbreviation) {
console.log('STATE: ' + stateAbbreviation);
return getImageUrl(400, 720, stateAbbreviation);
}
Run Code Online (Sandbox Code Playgroud) 我正在学习 js 并创建简单的 Alexa 技能。我想更好地理解模板代码,并且正在研究https://ask-sdk-for-nodejs.readthedocs.io上的文档,但我找不到这个问题的答案。.getResponse() 方法在每个处理程序模板中使用。它也用在 SessionEndedIntent 处理程序中,这意味着它不能成为等待用户输入的方法。我尝试谷歌搜索但找不到答案。谁能解释一下 .getResponse() 的作用,或者向我指出相关文档?谢谢。
const SessionEndedRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
},
handle(handlerInput) {
// Any cleanup logic goes here.
return handlerInput.responseBuilder.getResponse();
}
Run Code Online (Sandbox Code Playgroud) 大家好
我是 Amazon Alexa 的新手,我有一项使用 PHP 与 oauth 2.0 链接到 Alexa Skill 帐户的工作。
我已成功配置所有内容并获取代码,Auth Code Grant但是当我在 Chrome 浏览器中运行代码时,它会产生Account linking Failed问题,但当我在 Firefox 中运行相同的 URL 时,它会Amazon linking failed生成ERROR=missing-state.
请帮助我解决我的问题,任何帮助将不胜感激。
我正在开发 Alexa 技能,并希望使用 CloudFormation 为我的技能部署基础设施。
到目前为止,IAM 角色、策略和 lambda 函数部署工作正常。我缺少的是 Alexa Skill Kit 中用于 lambda 函数的触发器。
目前我必须在 AWS 控制台中手动创建此触发器:
或者通过 CLI:
aws lambda add-permission --function-name DeutscheDeklinationLambdaFunction --statement-id 1 --action lambda:invokeFunction --principal alexa-appkit.amazon.com --region eu-west-1
Run Code Online (Sandbox Code Playgroud)
但我更愿意通过 CloudFormation 配置此触发器。我认为应该是https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html,但我找不到如何为 Alexa Skills Kit 实现这一点。
我正在用 python 开发一个简单的亚马逊 Alexa 技能。我已经为这个简单的应用程序编写了所有代码,并将其加载到我的 lambda 函数中,我已经测试过 lambda 已加载我导入的库并且它可以与它们一起使用,但是当我使用这个最终代码时,它会出现“所请求的技能响应出现问题” ”
def handle(self, handler_input):
# type: (HandlerInput) -> Response
# https://repl.it/repls/UselessOptimalPipeline
url = "http://jokepro.dx.am/"
source = requests.get(url)
bs4call = bs4.BeautifulSoup(source.text, "html.parser")
obj = bs4call.find('object')
text = requests.get(url + obj['data']).text
# print(text) # <-- to print the textfile
finalJoke = random.choice(text.splitlines())
speak_output = finalJoke
return (
handler_input.response_builder
.speak(speak_output)
#.ask()
.response
)
Run Code Online (Sandbox Code Playgroud)
这是处理函数
lambda 是否与该代码中的任何内容冲突?为什么它不起作用?
更新:这是一些相关信息
要求.txt
boto3==1.9.216
ask-sdk-core==1.11.0
bs4==4.8.2
requests==2.22.0
Run Code Online (Sandbox Code Playgroud)
这一切都不要通过亚马逊开发控制台https://developer.amazon.com/alexa/console/ask
python amazon-web-services python-3.x aws-lambda alexa-skills-kit
ask_sdk_core包含在我的 lambda 函数的requirements.txt文件中。但是,当我运行实际函数时, ask_sdk_core不会导入。我正在跟踪在 中找到的 cake walk 示例,
https://github.com/alexa/skill-sample-python-first-skill/tree/master/module-1
但正在尝试在我的个人 AWS 帐户上创建 lambda,而不是在 Alexa 托管的 lambda 上。
当我将 Alexa 技能指向 Alexa 托管的技能时,技能会按预期运行,但是当指向我通过从 Alexa 技能套件复制代码创建的 lambda 时,lambda 函数不会返回任何结果。
包含 lambda 在个人 AWS 账户上的照片。我尝试更改不同函数名称的多个值,但似乎没有任何效果。
lambda执行结果:
Response:
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'ask_sdk_core'",
"errorType": "Runtime.ImportModuleError"
}
Request ID:
"7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a"
Function Logs:
START RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'ask_sdk_core'END RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a
REPORT RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a Duration: 11.39 …Run Code Online (Sandbox Code Playgroud) python-module amazon-web-services python-3.x aws-lambda alexa-skills-kit
[以下回答问题的完整教程.欢迎反馈!]
我正在尝试创建一个AWS Lambda函数,用于Amazon Alexa技能从我的Netatmo weatherstation获取天气信息.基本上,我需要通过http请求连接到Netatmo云.
这是我的代码片段,http请求是为临时访问令牌完成的,请求没问题,但结果正文是正文:{"error":"invalid_request"}.这可能是什么问题?
var clientId = "";
var clientSecret = "";
var userId="a@google.ro";
var pass="";
function getNetatmoData(callback, cardTitle){
var sessionAttributes = {};
var formUserPass = { client_id: clientId,
client_secret: clientSecret,
username: userId,
password: pass,
scope: 'read_station',
grant_type: 'password' };
shouldEndSession = false;
cardTitle = "Welcome";
speechOutput ="";
repromptText ="";
var options = {
host: 'api.netatmo.net',
path: '/oauth2/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'client_id': clientId,
'client_secret': clientSecret,
'username': userId,
'password': pass,
'scope': 'read_station',
'grant_type': 'password'
}
}; …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services aws-lambda alexa-skill alexa-skills-kit
我正在编写一个Alexa技能,我希望将记录存储在未来时间的数据库中.例如,如果用户说"在两小时内",我想将时间存储在两小时后.
到目前为止,我发现我可以使用AMAZON.DURATION插槽类型将这样的单词转换为持续时间,但我还没想出如何将其添加到当前日期.
持续时间如下:PT2H.P表示持续时间,T表示时间单位,2H表示2小时.我自己可以解析这个问题,但是我希望有一些内置功能可以做到这一点?
alexa-skills-kit ×10
aws-lambda ×4
javascript ×2
node.js ×2
python-3.x ×2
.net-core ×1
alexa-skill ×1
console.log ×1
json ×1
oauth-2.0 ×1
php ×1
python ×1