[Python] Invoke an AWS lambda across regions

Discussão em 'Python' iniciado por Stack, Abril 9, 2025.

  1. Stack

    Stack Membro Participativo

    I have three lambda functions: boss, worker1, worker2. When using boto3.client.invoke I am able to call worker1 from boss. These two are in the same region.
    worker2 is in a separate region. When attempting to call worker2 from boss the following error returns:
    "An error occurred (ResourceNotFoundException) when calling the Invoke operation: Functions from 'us-east-1' are not reachable in this region ('us-west-2')" . boss has an execution role with the following permission:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Action": [
    "lambda:InvokeFunction"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:lambda:*:*:*"
    }
    ]
    }


    Please help clarify how permissions need to be conveyed for this to work. Thanks

    Edit: master and worker1 are in us-west-2 and worker1 is in us-east-1.
    Here is the code used to invoke worker from master:

    def lambda_handler(event, context):
    function_name = "arn:aws:lambda:us-east-1-...:function:worker_2"
    lambda_client = boto3.client('lambda')
    payload = json.dumps({"body-json": "payload string")
    response = lambda_client.invoke(
    FunctionName = function_name,
    Payload = payload
    )
    response_payload = response['Payload'].read()
    response_arr = json.loads(response_payload)
    return response_arr['answer']

    Continue reading...

Compartilhe esta Página