繁体   English   中英

AWS X-RAY [错误] 发送分段批处理失败,原因是:NoCredentialProviders:链中没有有效的提供程序。 已弃用

[英]AWS X-RAY [Error] Sending segment batch failed with: NoCredentialProviders: no valid providers in chain. Deprecated

我正在使用带有 Fargate 的 X-Ray 守护程序。 不幸的是,在守护进程的日志中,我看到如下错误:

[错误] 发送分段批处理失败:NoCredentialProviders:链中没有有效的提供者。 已弃用。 有关详细消息,请参阅 aws.Config.CredentialsChainVerboseErrors Warn] 将额外批次的发送延迟 0 秒

AWS X-Ray 与 IAM 一起使用:权限:AWSXrayFullAccess

我已经检查过:

{
 "name" : "xray-daemon",
 "image" : "amazon/aws-xray-daemon",
 "user" : "1337",
 "essential" : true,
 "cpu" : "32",
 "memoryReservation" : "256",
 "portMappings" : [
 {
 "containerPort" : 2000,
 "protocol" : "udp"
 }
 ]
 }
 ],
 "requiresCompatibilities" : [ "FARGATE" ],
 "taskRoleArn" : "arn:aws:iam::123456789012:role/ecsTaskRole",
 "executionRoleArn" : "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
 "networkMode" : "awsvpc"
} 

您应该检查您的角色权限角色,我使用相同的执行和 taskRoleArn。 我的角色包含这些政策

  • arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  • arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
  • arn:aws:iam::aws:policy/AWSXRayFullAccess

并检查角色的信任关系。 我用过的:

  • ecs-tasks.amazonaws.com
  • ecs.amazonaws.com
  • c2.amazonaws.com

当我的 X 射线守护程序版本较旧时出现此错误。

如果 X 射线守护程序在 ECS 上运行,请按照以下指南更新您的 X 射线守护程序:

https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ecs.html

XRay 守护程序缺少向 XRay 服务器进行身份验证所需的凭据。 您可以通过多种方式将凭据传递给 XRay 守护程序,但最常见的是:

  1. 通过环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
  2. 通过 ~/.aws/credentials 文件(参见https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

我猜选项 1 使用 fargate 会更容易。

当然需要在IAM中生成密钥,参见: https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html

您将为其创建访问密钥的用户需要具有使用 XRay 的权限(AWSXrayFullAccess 应该这样做)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM