-
-
Save kapilt/770bdf5d2a55b7385a9c to your computer and use it in GitHub Desktop.
Log output | |
The area below shows the logging calls in your code. These correspond to a single row within the CloudWatch log group corresponding to this Lambda function. Click here to view the CloudWatch log group. | |
START RequestId: 2644abca-b08d-11e5-a8cb-e1cccca020f0 Version: $LATEST | |
Unable to import module 'lambda_function': No module named lambda_function | |
END RequestId: 2644abca-b08d-11e5-a8cb-e1cccca020f0 | |
REPORT RequestId: 2644abca-b08d-11e5-a8cb-e1cccca020f0 Duration: 72.41 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 8 MB |
from __future__ import print_function | |
print("Loading Function") | |
def lambda_handler(event, context): | |
print("Got Here") | |
return 1 |
$ md5 lambda-2.zip | |
md5 lambda-2.zip | |
MD5 (lambda-2.zip) = f4da7d8e551e9214dc27ed9673d43ad4 |
$ unzip -lv lambda-2.zip | |
unzip -lv lambda-2.zip | |
Archive: lambda-2.zip | |
Length Method Size Ratio Date Time CRC-32 Name | |
-------- ------ ------- ----- ---- ---- ------ ---- | |
138 Defl:N 112 19% 01-01-16 08:38 0a224fa9 lambda_function.py | |
-------- ------- --- ------- | |
138 112 19% 1 file |
zip -j lambda-2.zip f/lambda_function.py | |
aws lambda create-function \ | |
--region us-east-1 \ | |
--runtime python2.7 \ | |
--role "arn:aws:iam::11221122111:role/lambda_basic_execution" \ | |
--description "testing venv problems" \ | |
--timeout 10 \ | |
--memory-size 128 \ | |
--handler lambda_function.lambda_handler \ | |
--zip-file fileb://lambda-2.zip \ | |
--function-name maid-dev-test-2 |
not working my code
alexa lambda function-
import urllib2
import json
API_BASE="http://bartjsonapi.elasticbeanstalk.com/api"
def lambda_handler(event, context):
if (event["session"]["application"]["applicationId"] !=
"amzn1.echo-sdk-ams.app.bd304b90-xxxx-xxxx-xxxx-xxxxd4772bab"):
raise ValueError("Invalid Application ID")
if event["session"]["new"]:
on_session_started({"requestId": event["request"]["requestId"]}, event["session"])
if event["request"]["type"] == "LaunchRequest":
return on_launch(event["request"], event["session"])
elif event["request"]["type"] == "IntentRequest":
return on_intent(event["request"], event["session"])
elif event["request"]["type"] == "SessionEndedRequest":
return on_session_ended(event["request"], event["session"])
def on_session_started(session_started_request, session):
print("Starting new session.")
def on_launch(launch_request, session):
return get_welcome_response()
def on_intent(intent_request, session):
intent = intent_request["intent"]
intent_name = intent_request["intent"]["name"]
if intent_name == "GetStatus":
return get_system_status()
elif intent_name == "GetElevators":
return get_elevator_status()
elif intent_name == "GetTrainTimes":
return get_train_times(intent)
elif intent_name == "AMAZON.HelpIntent":
return get_welcome_response()
elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent":
return handle_session_end_request()
else:
raise ValueError("Invalid intent")
def on_session_ended(session_ended_request, session):
print("Ending session.")
# Cleanup goes here...
def handle_session_end_request():
card_title = "BART - Thanks"
speech_output = "Thank you for using the BART skill. See you next time!"
should_end_session = True
return build_response({}, build_speechlet_response(card_title, speech_output, None, should_end_session))
def get_welcome_response():
session_attributes = {}
card_title = "BART"
speech_output = "Welcome to the Alexa BART times skill. "
"You can ask me for train times from any station, or "
"ask me for system status or elevator status reports."
reprompt_text = "Please ask me for trains times from a station, "
"for example Fremont."
should_end_session = False
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
def get_system_status():
session_attributes = {}
card_title = "BART System Status"
reprompt_text = ""
should_end_session = False
response = urllib2.urlopen(API_BASE + "/status")
bart_system_status = json.load(response)
speech_output = "There are currently " + bart_system_status["traincount"] + " trains operating. "
if len(bart_system_status["message"]) > 0:
speech_output += bart_system_status["message"]
else:
speech_output += "The trains are running normally."
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
def get_elevator_status():
session_attributes = {}
card_title = "BART Elevator Status"
reprompt_text = ""
should_end_session = False
response = urllib2.urlopen(API_BASE + "/elevatorstatus")
bart_elevator_status = json.load(response)
speech_output = "BART elevator status. " + bart_elevator_status["bsa"]["description"]
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
def get_train_times(intent):
session_attributes = {}
card_title = "BART Departures"
speech_output = "I'm not sure which station you wanted train times for. "
"Please try again."
reprompt_text = "I'm not sure which station you wanted train times for. "
"Try asking about Fremont or Powell Street for example."
should_end_session = False
if "Station" in intent["slots"]:
station_name = intent["slots"]["Station"]["value"]
station_code = get_station_code(station_name.lower())
if (station_code != "unkn"):
card_title = "BART Departures from " + station_name.title()
response = urllib2.urlopen(API_BASE + "/departures/" + station_code)
station_departures = json.load(response)
speech_output = "Train departures from " + station_name + " are as follows: "
for destination in station_departures["etd"]:
speech_output += "Towards " + destination["destination"] + " on platform " + destination["estimate"][0]["platform"] + ". ";
for estimate in destination["estimate"]:
if estimate["minutes"] == "Leaving":
speech_output += "Leaving now: "
elif estimate["minutes"] == "1":
speech_output += "In one minute: "
else:
speech_output += "In " + estimate["minutes"] + " minutes: "
speech_output += estimate["length"] + " car train. "
reprompt_text = ""
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
def get_station_code(station_name):
return {
"12th street oakland city center": "12th",
"16th street mission": "16th",
"19th street oakland": "19th",
"24th street mission": "24th",
"ashby": "ashb",
"balboa park": "balb",
"bay fair": "bayf",
"castro valley": "cast",
"civic center": "civc",
"coliseum": "cols",
"colma": "colm",
"concord": "conc",
"daly city": "daly",
"downtown berkeley": "dbrk",
"dublin pleasanton": "dubl",
"el cerrito del norte": "deln",
"del norte": "deln",
"el cerrito plaza": "plza",
"embarcadero": "embr",
"fremont": "frmt",
"fruitvale": "ftvl",
"glen park": "glen",
"hayward": "hayw",
"lafayette": "lafy",
"lake merritt": "lake",
"macarthur": "mcar",
"millbrae": "mlbr",
"montgomery street": "mont",
"north berkeley": "nbrk",
"north concord martinez": "ncon",
"oakland airport": "oakl",
"orinda": "orin",
"pittsburg bay point": "pitt",
"pleasant hill": "phil",
"powell street": "powl",
"richmond": "rich",
"rockridge": "rock",
"san bruno": "sbrn",
"san francisco airport": "sfia",
"san leandro": "sanl",
"south hayward": "shay",
"south san francisco": "ssan",
"union city": "ucty",
"walnut creek": "wcrk",
"west dublin pleasanton": "wdub",
"west oakland": "woak",
}.get(station_name, "unkn")
def build_speechlet_response(title, output, reprompt_text, should_end_session):
return {
"outputSpeech": {
"type": "PlainText",
"text": output
},
"card": {
"type": "Simple",
"title": title,
"content": output
},
"reprompt": {
"outputSpeech": {
"type": "PlainText",
"text": reprompt_text
}
},
"shouldEndSession": should_end_session
}
def build_response(session_attributes, speechlet_response):
return {
"version": "1.0",
"sessionAttributes": session_attributes,
"response": speechlet_response
}
error- Unable to import module 'lambda': No module named 'urllib2'
@mlapida it worked