AWS CLI を使用した Lambda 関数のインストゥルメント化
AWS CLI を使用して Amazon から Splunk AppDynamics レイヤをプルするには1、次の手順を実行します。
- 「レイヤを使用するための関数の設定」を参照してください。
- 「環境変数の設定」を参照してください。
環境変数の設定
AWS Lambda へのトレーサの挿入を完了するには、プログラミング言語とバージョンに応じて環境変数を構成します。
Node 16.x、Node 18.x、Node 20.x、Python 3.8、および Python 3.9
環境変数 AWS_LAMBDA_EXEC_WRAPPER を値を /opt/appdynamics-extension-script にして追加します。
AWS_LAMBDA_EXEC_WRAPPER = /opt/appdynamics-extension-script
Python 3.7 の場合
環境変数 APPDYNAMICS_PYTHON_AUTOINSTRUMENT を値を true に設定して追加します。
APPDYNAMICS_PYTHON_AUTOINSTRUMENT = true
コンテナイメージとしてパッケージ化されている場合に AWS Lambda Extension を関数に追加する
Lambda 関数がコンテナイメージとして展開されている場合、関数設定を通じて Lambda レイヤを追加することはできません。代わりに、ビルドプロセス中にコンテナイメージの一部として拡張機能をパッケージ化する必要があります。詳しくは、この AWS のブログ記事を参照してください。
Cisco AppDynamics Lambda 拡張機能を Lambda コンテナに追加するには、次のような Dockerfile を使用する必要があります。
- Node.js 20
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/nodejs:20 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY package.json ./ RUN npm install COPY app.js ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"] - Node.js 18
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/nodejs:18 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY package.json ./ RUN npm install COPY app.js ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"] - Node.js 16
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/nodejs:16 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY package.json ./ RUN npm install COPY app.js ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"] - Python 3.9
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/python:3.9 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY app.py ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"] - python 3.8
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/python:3.8 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY app.py ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"] - Python 3.7
-
FROM amazon/aws-cli:2.2.4 AS downloader ARG version_number=10 ARG access_key ARG secret_key ARG region ARG cachebust ENV AWS_ACCESS_KEY_ID=${access_key} ENV AWS_SECRET_ACCESS_KEY=${secret_key} ENV AWS_REGION=${region} ENV VERSION_NUMBER=${version_number} RUN yum install -y jq curl RUN echo "Cache Bust: $cachebust" 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 FROM public.ecr.aws/lambda/python:3.7 COPY --from=downloader /aws/extension.zip . RUN yum install -y unzip && unzip extension.zip -d /opt && rm -f extension.zip COPY app.py ./ # You can overwrite command in `serverless.yml` template CMD ["app.handler"]
コードと Cisco AppDynamics Lambda 拡張を含むコンテナイメージを作成するには、現在のディレクトリに正しい Dockerfile があることを確認し、docker build コマンドを使用します。次に例を示します。
docker build --build-arg version_number=$version_number --build-arg access_key=$(aws configure get aws_access_key_id) --build-arg secret_key=$(aws configure get aws_secret_access_key) --build-arg region=$(aws configure get region) -t <your tag> --build-arg cachebust=$(date +%s) .
サーバレス トレーサ インストゥルメンテーションの確認
「サーバーレス トレーサ インストゥルメンテーションの確認」を参照してください。