Lambda 함수에서 Embulk 명령을 실행해보십시오 (사용자 정의 런타임 사용)
소개
이 기사는 BeeX Advent Calendar 2020 의 12/20 기사입니다.
==
12/16에 Lambda에서 Embulk 명령을 실행하는 기사를 썼습니다.
Lambda 함수에서 Embulk 명령을 실행해보십시오.
이 때는 파이썬의 기본 이미지를 사용하여 실행했지만, 잘 생각하면 Bash에서 실행할 수 있다면 그 쪽이 불필요한 구현이 필요 없기 때문에, 같은 것을 Lambda의 커스텀 런타임을 사용해 보겠습니다. 했다.
다음을 참고하겠습니다.
Embulk 이외의 자세한 것은 이쪽을 확인해 주세요.
* AWS Lambda 컨테이너 이미지에서 kubectl 명령을 실행하여 EKS를 관리해 봅니다.
환경
PC: Windows 10
Docker: Docker version 19.03.13, build 4484c46d9d
전제
Docker 초기 설정 완료
AWS 계정 생성
Amazon ECR 리포지토리 생성
실제 조작
bootstrap.sh 만들기
handler.sh를 호출하는 bootstrap.sh를 작성합니다.
bootstrap.sh#!/bin/sh
export _HANDLER=/aws/handler.sh
if [ -z "${AWS_LAMBDA_RUNTIME_API}" ]; then
exec /usr/local/bin/aws-lambda-rie $_HANDLER
else
exec $_HANDLER
fi
handler.sh 만들기
실제 처리를 수행하는 handler.sh를 작성하십시오.
handler 함수는 embulk 명령을 작성합니다.
handler.sh#!/bin/sh
handler(){
echo "start function"
echo "run emulk"
/usr/bin/embulk help
echo "end function"
}
while true
do
HEADERS="$(mktemp)"
# Get an event. The HTTP request will block until one is received
EVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next")
# Extract request ID by scraping response headers received above
REQUEST_ID=$(grep -Fi Lambda-Runtime-Aws-Request-Id "$HEADERS" | tr -d '[:space:]' | cut -d: -f2)
# Run the handler
handler ${EVENT_DATA}
# Send the response
curl -s -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "OK"
done
Dockerfile 만들기
이미지를 만들기 위한 Dockerfile을 만듭니다.
corretto를 설치하는 이유는 Embulk 명령에 java가 필요하기 때문입니다.
FROM amazon/aws-cli
RUN curl -L -o /usr/local/bin/aws-lambda-rie https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie
RUN chmod 755 /usr/local/bin/aws-lambda-rie
RUN amazon-linux-extras enable corretto8
RUN yum install java-1.8.0-amazon-corretto-devel -y
COPY embulk /usr/bin/embulk
RUN chmod +x /usr/bin/embulk
ADD ./bootstrap.sh /aws/bootstrap
ADD ./handler.sh /aws/handler.sh
RUN chmod +x /aws/handler.sh
RUN chmod +x /aws/bootstrap
ENTRYPOINT ["/aws/bootstrap"]
이미지 빌드
특정 폴더에 작성한 다음 파일을 저장합니다.
$ ls
Dockerfile bootstrap.sh embulk handler.sh
빌드 명령을 실행하여 이미지를 만듭니다.
$ docker build -t lambda_embulk_shell .
~build実行中~
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lambda_embulk_shell latest 8b25a817b50c 15 seconds ago 428MB
테스트
로컬에서 실행할 수 있는지 또는 다음 명령으로 테스트를 시도합니다.
※curl 커맨드는 별도 터미널
$ docker run -p 9000:8080 lambda_shell:latest
$ curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d'{}'
문제 없을 것 같습니다.
$ docker run -p 9000:8080 lambda_embulk_shell:latest
time="2020-12-20T03:32:24.907" level=info msg="exec '/aws/handler.sh' (cwd=/aws, handler=)"
time="2020-12-20T03:32:29.614" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2020-12-20T03:32:29.614" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: da60f400-e93c-4341-accc-52c680834281 Version: $LATEST
start function
run emulk
Embulk v0.9.23
Usage: embulk [-vm-options] <command> [--options]
Commands:
mkbundle <directory> # create a new plugin bundle environment.
bundle [directory] # update a plugin bundle environment.
run <config.yml> # run a bulk load transaction.
cleanup <config.yml> # cleanup resume state.
preview <config.yml> # dry-run the bulk load without output and show preview.
guess <partial-config.yml> -o <output.yml> # guess missing parameters to create a complete configuration file.
gem <install | list | help> # install a plugin or show installed plugins.
new <category> <name> # generates new plugin template
migrate <path> # modify plugin code to use the latest Embulk plugin API
example [path] # creates an example config file and csv file to try embulk.
selfupdate [version] # upgrades embulk to the latest released version or to the specified version.
ECR 리포지토리에 푸시
리포지토리를 만듭니다.
다음 명령으로 ECR로 푸시합니다.
$ docker tag lambda_embulk_shell:latest XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
$ docker push XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell:latest
ECR에 이미지가 푸시되었습니다.
Lambda 작성 및 실행
Lambda는 지난번 사용한 것을 유용합니다.
할 일은 Lambda에서 지정한 이미지를 변경하는 것입니다.
조금 시간이 걸렸지만 정상적으로 실행되는 것 같습니다.
결론
평소 Lambda에서는 python을 사용하기 때문에 전회는 사용했습니다만, 커멘드를 실행하고 싶은 것만으로는 python일 필요도 없기 때문에, 커스텀 런타임을 사용해 보았습니다.
실은 당초는 파이썬으로 구현하려고 추진하고 있었습니다만, 파이썬의 subprocess라면 디버그가 어렵고, 그렇다면 shell로 실행할 수 있는 편이 편하다고 생각해 도중에 내용을 수정했다는 배경도 있거나 합니다.
이 흐름에서 다음번에는 Embulk의 샘플 파일을 사용한 실제 처리의 실행을 검증하고 싶습니다.
Reference
이 문제에 관하여(Lambda 함수에서 Embulk 명령을 실행해보십시오 (사용자 정의 런타임 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/handy-dd18/items/39369f92738254294fba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PC: Windows 10
Docker: Docker version 19.03.13, build 4484c46d9d
전제
Docker 초기 설정 완료
AWS 계정 생성
Amazon ECR 리포지토리 생성
실제 조작
bootstrap.sh 만들기
handler.sh를 호출하는 bootstrap.sh를 작성합니다.
bootstrap.sh#!/bin/sh
export _HANDLER=/aws/handler.sh
if [ -z "${AWS_LAMBDA_RUNTIME_API}" ]; then
exec /usr/local/bin/aws-lambda-rie $_HANDLER
else
exec $_HANDLER
fi
handler.sh 만들기
실제 처리를 수행하는 handler.sh를 작성하십시오.
handler 함수는 embulk 명령을 작성합니다.
handler.sh#!/bin/sh
handler(){
echo "start function"
echo "run emulk"
/usr/bin/embulk help
echo "end function"
}
while true
do
HEADERS="$(mktemp)"
# Get an event. The HTTP request will block until one is received
EVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next")
# Extract request ID by scraping response headers received above
REQUEST_ID=$(grep -Fi Lambda-Runtime-Aws-Request-Id "$HEADERS" | tr -d '[:space:]' | cut -d: -f2)
# Run the handler
handler ${EVENT_DATA}
# Send the response
curl -s -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "OK"
done
Dockerfile 만들기
이미지를 만들기 위한 Dockerfile을 만듭니다.
corretto를 설치하는 이유는 Embulk 명령에 java가 필요하기 때문입니다.
FROM amazon/aws-cli
RUN curl -L -o /usr/local/bin/aws-lambda-rie https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie
RUN chmod 755 /usr/local/bin/aws-lambda-rie
RUN amazon-linux-extras enable corretto8
RUN yum install java-1.8.0-amazon-corretto-devel -y
COPY embulk /usr/bin/embulk
RUN chmod +x /usr/bin/embulk
ADD ./bootstrap.sh /aws/bootstrap
ADD ./handler.sh /aws/handler.sh
RUN chmod +x /aws/handler.sh
RUN chmod +x /aws/bootstrap
ENTRYPOINT ["/aws/bootstrap"]
이미지 빌드
특정 폴더에 작성한 다음 파일을 저장합니다.
$ ls
Dockerfile bootstrap.sh embulk handler.sh
빌드 명령을 실행하여 이미지를 만듭니다.
$ docker build -t lambda_embulk_shell .
~build実行中~
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lambda_embulk_shell latest 8b25a817b50c 15 seconds ago 428MB
테스트
로컬에서 실행할 수 있는지 또는 다음 명령으로 테스트를 시도합니다.
※curl 커맨드는 별도 터미널
$ docker run -p 9000:8080 lambda_shell:latest
$ curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d'{}'
문제 없을 것 같습니다.
$ docker run -p 9000:8080 lambda_embulk_shell:latest
time="2020-12-20T03:32:24.907" level=info msg="exec '/aws/handler.sh' (cwd=/aws, handler=)"
time="2020-12-20T03:32:29.614" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2020-12-20T03:32:29.614" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: da60f400-e93c-4341-accc-52c680834281 Version: $LATEST
start function
run emulk
Embulk v0.9.23
Usage: embulk [-vm-options] <command> [--options]
Commands:
mkbundle <directory> # create a new plugin bundle environment.
bundle [directory] # update a plugin bundle environment.
run <config.yml> # run a bulk load transaction.
cleanup <config.yml> # cleanup resume state.
preview <config.yml> # dry-run the bulk load without output and show preview.
guess <partial-config.yml> -o <output.yml> # guess missing parameters to create a complete configuration file.
gem <install | list | help> # install a plugin or show installed plugins.
new <category> <name> # generates new plugin template
migrate <path> # modify plugin code to use the latest Embulk plugin API
example [path] # creates an example config file and csv file to try embulk.
selfupdate [version] # upgrades embulk to the latest released version or to the specified version.
ECR 리포지토리에 푸시
리포지토리를 만듭니다.
다음 명령으로 ECR로 푸시합니다.
$ docker tag lambda_embulk_shell:latest XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
$ docker push XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell:latest
ECR에 이미지가 푸시되었습니다.
Lambda 작성 및 실행
Lambda는 지난번 사용한 것을 유용합니다.
할 일은 Lambda에서 지정한 이미지를 변경하는 것입니다.
조금 시간이 걸렸지만 정상적으로 실행되는 것 같습니다.
결론
평소 Lambda에서는 python을 사용하기 때문에 전회는 사용했습니다만, 커멘드를 실행하고 싶은 것만으로는 python일 필요도 없기 때문에, 커스텀 런타임을 사용해 보았습니다.
실은 당초는 파이썬으로 구현하려고 추진하고 있었습니다만, 파이썬의 subprocess라면 디버그가 어렵고, 그렇다면 shell로 실행할 수 있는 편이 편하다고 생각해 도중에 내용을 수정했다는 배경도 있거나 합니다.
이 흐름에서 다음번에는 Embulk의 샘플 파일을 사용한 실제 처리의 실행을 검증하고 싶습니다.
Reference
이 문제에 관하여(Lambda 함수에서 Embulk 명령을 실행해보십시오 (사용자 정의 런타임 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/handy-dd18/items/39369f92738254294fba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
bootstrap.sh 만들기
handler.sh를 호출하는 bootstrap.sh를 작성합니다.
bootstrap.sh
#!/bin/sh
export _HANDLER=/aws/handler.sh
if [ -z "${AWS_LAMBDA_RUNTIME_API}" ]; then
exec /usr/local/bin/aws-lambda-rie $_HANDLER
else
exec $_HANDLER
fi
handler.sh 만들기
실제 처리를 수행하는 handler.sh를 작성하십시오.
handler 함수는 embulk 명령을 작성합니다.
handler.sh#!/bin/sh
handler(){
echo "start function"
echo "run emulk"
/usr/bin/embulk help
echo "end function"
}
while true
do
HEADERS="$(mktemp)"
# Get an event. The HTTP request will block until one is received
EVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next")
# Extract request ID by scraping response headers received above
REQUEST_ID=$(grep -Fi Lambda-Runtime-Aws-Request-Id "$HEADERS" | tr -d '[:space:]' | cut -d: -f2)
# Run the handler
handler ${EVENT_DATA}
# Send the response
curl -s -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "OK"
done
Dockerfile 만들기
이미지를 만들기 위한 Dockerfile을 만듭니다.
corretto를 설치하는 이유는 Embulk 명령에 java가 필요하기 때문입니다.
FROM amazon/aws-cli
RUN curl -L -o /usr/local/bin/aws-lambda-rie https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie
RUN chmod 755 /usr/local/bin/aws-lambda-rie
RUN amazon-linux-extras enable corretto8
RUN yum install java-1.8.0-amazon-corretto-devel -y
COPY embulk /usr/bin/embulk
RUN chmod +x /usr/bin/embulk
ADD ./bootstrap.sh /aws/bootstrap
ADD ./handler.sh /aws/handler.sh
RUN chmod +x /aws/handler.sh
RUN chmod +x /aws/bootstrap
ENTRYPOINT ["/aws/bootstrap"]
이미지 빌드
특정 폴더에 작성한 다음 파일을 저장합니다.
$ ls
Dockerfile bootstrap.sh embulk handler.sh
빌드 명령을 실행하여 이미지를 만듭니다.
$ docker build -t lambda_embulk_shell .
~build実行中~
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lambda_embulk_shell latest 8b25a817b50c 15 seconds ago 428MB
테스트
로컬에서 실행할 수 있는지 또는 다음 명령으로 테스트를 시도합니다.
※curl 커맨드는 별도 터미널
$ docker run -p 9000:8080 lambda_shell:latest
$ curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d'{}'
문제 없을 것 같습니다.
$ docker run -p 9000:8080 lambda_embulk_shell:latest
time="2020-12-20T03:32:24.907" level=info msg="exec '/aws/handler.sh' (cwd=/aws, handler=)"
time="2020-12-20T03:32:29.614" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2020-12-20T03:32:29.614" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: da60f400-e93c-4341-accc-52c680834281 Version: $LATEST
start function
run emulk
Embulk v0.9.23
Usage: embulk [-vm-options] <command> [--options]
Commands:
mkbundle <directory> # create a new plugin bundle environment.
bundle [directory] # update a plugin bundle environment.
run <config.yml> # run a bulk load transaction.
cleanup <config.yml> # cleanup resume state.
preview <config.yml> # dry-run the bulk load without output and show preview.
guess <partial-config.yml> -o <output.yml> # guess missing parameters to create a complete configuration file.
gem <install | list | help> # install a plugin or show installed plugins.
new <category> <name> # generates new plugin template
migrate <path> # modify plugin code to use the latest Embulk plugin API
example [path] # creates an example config file and csv file to try embulk.
selfupdate [version] # upgrades embulk to the latest released version or to the specified version.
ECR 리포지토리에 푸시
리포지토리를 만듭니다.
다음 명령으로 ECR로 푸시합니다.
$ docker tag lambda_embulk_shell:latest XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
$ docker push XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell:latest
ECR에 이미지가 푸시되었습니다.
Lambda 작성 및 실행
Lambda는 지난번 사용한 것을 유용합니다.
할 일은 Lambda에서 지정한 이미지를 변경하는 것입니다.
조금 시간이 걸렸지만 정상적으로 실행되는 것 같습니다.
결론
평소 Lambda에서는 python을 사용하기 때문에 전회는 사용했습니다만, 커멘드를 실행하고 싶은 것만으로는 python일 필요도 없기 때문에, 커스텀 런타임을 사용해 보았습니다.
실은 당초는 파이썬으로 구현하려고 추진하고 있었습니다만, 파이썬의 subprocess라면 디버그가 어렵고, 그렇다면 shell로 실행할 수 있는 편이 편하다고 생각해 도중에 내용을 수정했다는 배경도 있거나 합니다.
이 흐름에서 다음번에는 Embulk의 샘플 파일을 사용한 실제 처리의 실행을 검증하고 싶습니다.
Reference
이 문제에 관하여(Lambda 함수에서 Embulk 명령을 실행해보십시오 (사용자 정의 런타임 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/handy-dd18/items/39369f92738254294fba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/sh
handler(){
echo "start function"
echo "run emulk"
/usr/bin/embulk help
echo "end function"
}
while true
do
HEADERS="$(mktemp)"
# Get an event. The HTTP request will block until one is received
EVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next")
# Extract request ID by scraping response headers received above
REQUEST_ID=$(grep -Fi Lambda-Runtime-Aws-Request-Id "$HEADERS" | tr -d '[:space:]' | cut -d: -f2)
# Run the handler
handler ${EVENT_DATA}
# Send the response
curl -s -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "OK"
done
FROM amazon/aws-cli
RUN curl -L -o /usr/local/bin/aws-lambda-rie https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie
RUN chmod 755 /usr/local/bin/aws-lambda-rie
RUN amazon-linux-extras enable corretto8
RUN yum install java-1.8.0-amazon-corretto-devel -y
COPY embulk /usr/bin/embulk
RUN chmod +x /usr/bin/embulk
ADD ./bootstrap.sh /aws/bootstrap
ADD ./handler.sh /aws/handler.sh
RUN chmod +x /aws/handler.sh
RUN chmod +x /aws/bootstrap
ENTRYPOINT ["/aws/bootstrap"]
$ ls
Dockerfile bootstrap.sh embulk handler.sh
$ docker build -t lambda_embulk_shell .
~build実行中~
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lambda_embulk_shell latest 8b25a817b50c 15 seconds ago 428MB
$ docker run -p 9000:8080 lambda_shell:latest
$ curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d'{}'
$ docker run -p 9000:8080 lambda_embulk_shell:latest
time="2020-12-20T03:32:24.907" level=info msg="exec '/aws/handler.sh' (cwd=/aws, handler=)"
time="2020-12-20T03:32:29.614" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2020-12-20T03:32:29.614" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: da60f400-e93c-4341-accc-52c680834281 Version: $LATEST
start function
run emulk
Embulk v0.9.23
Usage: embulk [-vm-options] <command> [--options]
Commands:
mkbundle <directory> # create a new plugin bundle environment.
bundle [directory] # update a plugin bundle environment.
run <config.yml> # run a bulk load transaction.
cleanup <config.yml> # cleanup resume state.
preview <config.yml> # dry-run the bulk load without output and show preview.
guess <partial-config.yml> -o <output.yml> # guess missing parameters to create a complete configuration file.
gem <install | list | help> # install a plugin or show installed plugins.
new <category> <name> # generates new plugin template
migrate <path> # modify plugin code to use the latest Embulk plugin API
example [path] # creates an example config file and csv file to try embulk.
selfupdate [version] # upgrades embulk to the latest released version or to the specified version.
$ docker tag lambda_embulk_shell:latest XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
$ docker push XXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/lambda-embulk-shell:latest
평소 Lambda에서는 python을 사용하기 때문에 전회는 사용했습니다만, 커멘드를 실행하고 싶은 것만으로는 python일 필요도 없기 때문에, 커스텀 런타임을 사용해 보았습니다.
실은 당초는 파이썬으로 구현하려고 추진하고 있었습니다만, 파이썬의 subprocess라면 디버그가 어렵고, 그렇다면 shell로 실행할 수 있는 편이 편하다고 생각해 도중에 내용을 수정했다는 배경도 있거나 합니다.
이 흐름에서 다음번에는 Embulk의 샘플 파일을 사용한 실제 처리의 실행을 검증하고 싶습니다.
Reference
이 문제에 관하여(Lambda 함수에서 Embulk 명령을 실행해보십시오 (사용자 정의 런타임 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/handy-dd18/items/39369f92738254294fba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)