AWS SDK 또는 CLI로 Invoke 사용하기

AWS SDK 또는 CLI로 Invoke 사용하기 (Use Invoke with an AWS SDK or CLI)

Lambda 함수를 실제로 호출(invoke)해서 실행시키는 건 핵심 동작이에요. 이 페이지는 여러 AWS SDK와 CLI에서 Invoke API를 사용해 함수를 호출하는 방법을 보여줘요.

출처: AWS Lambda 개발자 안내서

본문

다음 코드 예제는 Invoke 를 사용하는 방법을 보여줘요. 액션 예제(action example)는 더 큰 프로그램에서 발췌한 코드 조각이라 반드시 컨텍스트 안에서 실행돼야 해요. 다음 코드 예제에서 컨텍스트를 확인할 수 있어요:

.NET (SDK for .NET)

/// <summary>
/// Invoke a Lambda function.
/// </summary>
/// <param name="functionName">The name of the Lambda function to invoke.</param>
/// <param name="parameters">The parameter values that will be passed to the function.</param>
/// <returns>A System Threading Task.</returns>
public async Task<string> InvokeFunctionAsync(
    string functionName,
    string parameters)
{
    var payload = parameters;
    var request = new InvokeRequest
    {
        FunctionName = functionName,
        Payload = payload,
    };

    var response = await _lambdaService.InvokeAsync(request);
    MemoryStream stream = response.Payload;
    string returnValue = System.Text.Encoding.UTF8.GetString(stream.ToArray());
    return returnValue;
}
  • API 세부 정보는 AWS SDK for .NET API Reference 의 Invoke 를 참고하세요.

C++ (SDK for C++)

Aws::Client::ClientConfiguration clientConfig;
// Optional: Set to the AWS Region in which the bucket was created (overrides config file).
// clientConfig.region = "us-east-1";

Aws::Lambda::LambdaClient client(clientConfig);

Aws::Lambda::Model::InvokeRequest request;
request.SetFunctionName(LAMBDA_NAME);
request.SetLogType(logType);
std::shared_ptr<Aws::IOStream> payload = Aws::MakeShared<Aws::StringStream>("FunctionTest");
*payload << jsonPayload.View().WriteReadable();
request.SetBody(payload);
request.SetContentType("application/json");
Aws::Lambda::Model::InvokeOutcome outcome = client.Invoke(request);

if (outcome.IsSuccess())
{
    invokeResult = std::move(outcome.GetResult());
    result = true;
}
else
{
    std::cerr << "Error with Lambda::InvokeRequest. "
              << outcome.GetError().GetMessage()
              << std::endl;
}
  • API 세부 정보는 AWS SDK for C++ API Reference 의 Invoke 를 참고하세요.

CLI (AWS CLI)

예제 1: Lambda 함수를 동기적으로 호출하려면

다음 invoke 예제는 my-function 함수를 동기적으로 호출하고 응답을 output.txt 파일에 저장해요. 함수가 반환하는 값에 상관없이 성공적인 호출의 종료 코드는 0이에요.

aws lambda invoke --function-name my-function --payload '{"key1":"value1","key2":"value2","key3":"value3"}' output.txt

참고
응답이 큰 경우 함수 출력을 파일에 저장하면 편리해요. 자세한 내용은 AWS CLI Command Reference 의 invoke 를 참고하세요.

그 외 언어 예제

Go, Java, JavaScript, Kotlin, PHP, Python, Ruby, Rust, Swift 용 호출 예제도 이 API를 같은 패턴으로 사용해요. 전체 코드는 AWS Code Examples Repository 에서 확인할 수 있어요.

더 알아보기 (Learn more)