ECS Fargate ログを Datadog に送信しようとしています。これを行うには、Datadog API_KEY をlogConfiguration
オブジェクトのフィールドとして渡す必要があります。API_KEY を保護する必要があるためsecretOptions
、オブジェクトのキーを介して AWS Secrets Manager を使用していlogConfiguration
ます。
私はここにレイアウトされた AWS の手順に従っています。Datadog サイトの完全な手順については、こちらを参照してください。
何らかの理由で、ログが datadog に表示されません。リソースのcontainer_definitions
オブジェクトの下にある私の Terraform コードのログ構成セクションは次のとおりです。aws_ecs_task_definition
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "myservice",
"dd_source": "mysource",
"dd_message_key": "log",
"dd_tags": "env:dev",
"TLS": "on",
"provider": "ecs"
},
"secretOptions": [{
"name": "apikey",
"valueFrom": "arn:aws:secretsmanager:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:secret:mysecret"
}]
}
apikey を取り出しsecretOptions
て平文で追加すると、datadog コンソールにログが表示されます。
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "myservice",
"dd_source": "mysource",
"dd_message_key": "log",
"dd_tags": "env:dev",
"TLS": "on",
"provider": "ecs",
"apikey": "myapikey"
}
}
もちろん、平文で API_KEY を送信することはできません。secretOptions
Datadog では機能しませんか? どんな助けでも大歓迎です。