APM без сервера AppDynamics для Лямбды. Автоматическое расширение слоя докера инструментов. Приложение на Python. Ошибка = Расширение.Авария

#python #docker #aws-lambda #appdynamics

Вопрос:

Я пытаюсь реализовать APM без сервера для AWS Lambda в функции Python. Функция развертывается с помощью образа контейнера, поэтому расширение создается в виде слоя в файле Dockerfile.

Во-первых, на случай, если кто-то пытается автоматически настроить этот процесс; Расширение должно быть распаковано в /opt/расширения/ не в /opt/, как предложено в документах. В противном случае Лямбда не увидит расширение.

Это файл Dockerfile:

 FROM amazon/aws-cli:2.2.4 AS downloader

ARG version_number=10
ARG region=

ENV AWS_REGION=${region}
ENV VERSION_NUMBER=${version_number}

RUN yum install -y jq curl

WORKDIR /aws

RUN aws lambda get-layer-version-by-arn --arn arn:aws:lambda:$AWS_REGION:716333212585:layer:appdynamics-lambda-extension:$VERSION_NUMBER | jq -r '.Content.Location' | xargs curl -o extension.zip

# set base image (host OS)
FROM python:3.6.8-slim

ENV APPDYNAMICS_PYTHON_AUTOINSTRUMENT=true

# set the working directory for AppD
WORKDIR /opt

RUN apt-get clean 
    amp;amp; apt-get -y update 
    amp;amp; apt-get -y install python3-dev 
    python3-psycopg2 
    amp;amp; apt-get -y install build-essential

COPY --from=downloader /aws/extension.zip .
RUN apt-get install -y unzip amp;amp; unzip extension.zip -d /opt/extensions/ amp;amp; rm -f extension.zip

# set the working directory in the container
WORKDIR /code

RUN pip install --upgrade pip 
    amp;amp; pip install awslambdaric amp;amp; pip install appdynamics-lambda-tracer

# copy the dependencies file to the working directory
COPY requirements.txt .

# install dependencies
RUN pip install -r requirements.txt

# copy the content of the local src directory to the working directory
COPY /src .

RUN chmod 644 $(find . -type f) 
    amp;amp; chmod 755 $(find . -type d)

# command to run on container start
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
CMD [ "app.lambda_handler" ]

 

Однако при выполнении функции я получаю следующую ошибку:

AWS_Execution_Env не поддерживается, выполняется лямбда — код с аргументами по умолчанию.

 EXTENSION Name: appdynamics-extension-script State: Started Events: []
Start RequestId <requestid>
End RequestId <requestid>
Error: exit code 0 Extension.Crash
 

Без дополнительной информации.

Когда я пытаюсь реализовать трассировщик вручную, установив appdynamics-лямбда-трассировщик с помощью pip и импортировав модуль, я вижу журналы в Cloudwatch из AppDynamics, но они не сообщают контроллеру.

Есть идеи, что может быть причиной упомянутого сбоя?