Skip to content

Commit

Permalink
Fix default function name
Browse files Browse the repository at this point in the history
As noted in aws#46, the function name is derived from
the URL used to invoke it. The emulator uses `function`
in the API endpoint, but the `AWS_LAMBDA_FUNCTION_NAME`
environment variable is set to `test_function`. This
is an inconsistency between the emulator and the AWS
environment.
  • Loading branch information
skwashd committed Oct 5, 2021
1 parent 3567179 commit ebc933d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions cmd/aws-lambda-rie/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func InvokeHandler(w http.ResponseWriter, r *http.Request, sandbox Sandbox) {
invokeStart := time.Now()
invokePayload := &interop.Invoke{
ID: uuid.New().String(),
InvokedFunctionArn: fmt.Sprintf("arn:aws:lambda:us-east-1:012345678912:function:%s", GetenvWithDefault("AWS_LAMBDA_FUNCTION_NAME", "test_function")),
InvokedFunctionArn: fmt.Sprintf("arn:aws:lambda:us-east-1:012345678912:function:%s", GetenvWithDefault("AWS_LAMBDA_FUNCTION_NAME", "function")),
TraceID: r.Header.Get("X-Amzn-Trace-Id"),
LambdaSegmentID: r.Header.Get("X-Amzn-Segment-Id"),
Payload: bytes.NewReader(bodyBytes),
Expand Down Expand Up @@ -175,7 +175,7 @@ func InitHandler(sandbox Sandbox, functionVersion string, timeout int64) (time.T
additionalFunctionEnvironmentVariables["AWS_LAMBDA_LOG_STREAM_NAME"] = "$LATEST"
additionalFunctionEnvironmentVariables["AWS_LAMBDA_FUNCTION_VERSION"] = "$LATEST"
additionalFunctionEnvironmentVariables["AWS_LAMBDA_FUNCTION_MEMORY_SIZE"] = "3008"
additionalFunctionEnvironmentVariables["AWS_LAMBDA_FUNCTION_NAME"] = "test_function"
additionalFunctionEnvironmentVariables["AWS_LAMBDA_FUNCTION_NAME"] = "function"

// Forward Env Vars from the running system (container) to what the function can view. Without this, Env Vars will
// not be viewable when the function runs.
Expand All @@ -194,7 +194,7 @@ func InitHandler(sandbox Sandbox, functionVersion string, timeout int64) (time.T
AwsSecret: os.Getenv("AWS_SECRET_ACCESS_KEY"),
AwsSession: os.Getenv("AWS_SESSION_TOKEN"),
XRayDaemonAddress: "0.0.0.0:0", // TODO
FunctionName: GetenvWithDefault("AWS_LAMBDA_FUNCTION_NAME", "test_function"),
FunctionName: GetenvWithDefault("AWS_LAMBDA_FUNCTION_NAME", "function"),
FunctionVersion: functionVersion,

CustomerEnvironmentVariables: additionalFunctionEnvironmentVariables,
Expand Down
4 changes: 2 additions & 2 deletions test/integration/testdata/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ def check_env_var_handler(event, context):

def assert_env_var_is_overwritten(event, context):
print(os.environ.get("AWS_LAMBDA_FUNCTION_NAME"))
if os.environ.get("AWS_LAMBDA_FUNCTION_NAME") == "test_function":
if os.environ.get("AWS_LAMBDA_FUNCTION_NAME") == "function":
raise("Function name was not overwritten")
else:
return "My lambda ran succesfully"

def assert_lambda_arn_in_context(event, context):
if context.invoked_function_arn == f"arn:aws:lambda:us-east-1:012345678912:function:{os.environ.get('AWS_LAMBDA_FUNCTION_NAME', 'test_function')}":
if context.invoked_function_arn == f"arn:aws:lambda:us-east-1:012345678912:function:{os.environ.get('AWS_LAMBDA_FUNCTION_NAME', 'function')}":
return "My lambda ran succesfully"
else:
raise("Function Arn was not there")
Expand Down

0 comments on commit ebc933d

Please sign in to comment.