Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion airflow/providers/amazon/aws/hooks/lambda_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def invoke_lambda(
invocation_type: str | None = None,
log_type: str | None = None,
client_context: str | None = None,
payload: str | None = None,
payload: bytes | None = None,
Comment thread
eladg95 marked this conversation as resolved.
Outdated
qualifier: str | None = None,
):
"""
Expand Down
8 changes: 6 additions & 2 deletions airflow/providers/amazon/aws/operators/lambda_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,19 +150,23 @@ def __init__(
qualifier: str | None = None,
invocation_type: str | None = None,
client_context: str | None = None,
payload: str | None = None,
payload: str | bytes | None = None,
aws_conn_id: str = "aws_default",
**kwargs,
):
super().__init__(**kwargs)
self.function_name = function_name
self.payload = payload
self.log_type = log_type
self.qualifier = qualifier
self.invocation_type = invocation_type
self.client_context = client_context
self.aws_conn_id = aws_conn_id

if type(payload) == str:
payload = payload.encode()

self.payload = payload
Comment thread
eladg95 marked this conversation as resolved.
Outdated

@cached_property
def hook(self) -> LambdaHook:
return LambdaHook(aws_conn_id=self.aws_conn_id)
Expand Down
4 changes: 2 additions & 2 deletions tests/providers/amazon/aws/hooks/test_lambda_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ def test_get_conn_returns_a_boto3_connection(self, hook):
)
def test_invoke_lambda(self, mock_conn):
hook = LambdaHook()
hook.invoke_lambda(function_name=FUNCTION_NAME, payload=PAYLOAD)
hook.invoke_lambda(function_name=FUNCTION_NAME, payload=PAYLOAD.encode())

mock_conn().invoke.assert_called_once_with(
FunctionName=FUNCTION_NAME,
Payload=PAYLOAD,
Payload=PAYLOAD.encode(),
)

@pytest.mark.parametrize(
Expand Down
2 changes: 1 addition & 1 deletion tests/system/providers/amazon/aws/example_lambda.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def delete_lambda(function_name: str):
invoke_lambda_function = LambdaInvokeFunctionOperator(
task_id="invoke_lambda_function",
function_name=lambda_function_name,
payload=json.dumps({"SampleEvent": {"SampleData": {"Name": "XYZ", "DoB": "1993-01-01"}}}),
payload=json.dumps({"SampleEvent": {"SampleData": {"Name": "XYZ", "DoB": "1993-01-01"}}}).encode(),
Comment thread
eladg95 marked this conversation as resolved.
Outdated
)
# [END howto_operator_invoke_lambda_function]

Expand Down