MackerelチームでLambda関数から内部のリソースにアクセスするときの指針
- Lambda関数の実装はパラメータストアの値をできるだけ見ない設計にする
- シークレット情報をLambdaの環境変数にセットしない
MackerelのAPIを実行する
Section titled “MackerelのAPIを実行する”- Lambda関数がmackerel3と同じVPCに存在する場合、ALBのinternal URLを参照する
- Lambda関数でパラメータストアの値を拾うには、レートリミット回避のためAWS Parameters and Secrets Lambda extensionを入れてパラメータストアを参照する
OpenTelemetryシグナルを投稿する
Section titled “OpenTelemetryシグナルを投稿する”- Lambda関数のOpenTelemetry Collectorは ADOT Connector extension として実装される
- OpenTelemetry Collectorがシグナルを投稿するためにはAPI Keyが必要
- API Keyを得るには Parameters and Secrets Lambda extension を経由する必要がある
- 拡張の実行順序を制御できずOpenTelemetry CollectorはAPI Keyを参照できない
- なので otel-gateway プロキシを経由する
flowchart TD request(リクエスト) --> Lambda subgraph Lambda main --> handler subgraph "otellambda.InstrumentHandler" handler(Lambda Handler) end handler --> exporter(SDK Exporter) end exporter -- localhost:4317 --> adot(ADOT Connector extension) adot --> lb(ALB) --> gw subgraph ECS gw(otel-gateway) end gw --> vaxila(Vaxila) adot --> xray(X-Ray)