Aws lambda 在无服务器框架中有条件地为API网关和Lambda启用x-ray
只有在我需要节省一些钱的时候,我才尝试启用x射线。下面的Aws lambda 在无服务器框架中有条件地为API网关和Lambda启用x-ray,aws-lambda,aws-api-gateway,serverless-framework,serverless,aws-xray,Aws Lambda,Aws Api Gateway,Serverless Framework,Serverless,Aws Xray,只有在我需要节省一些钱的时候,我才尝试启用x射线。下面的serverless.yml从.env文件加载环境变量。然而,无服务器似乎只允许true、活动和直通。有没有可能绕过这个问题?谢谢 # serverless.yml provider: name: aws runtime: nodejs10.x logs: restApi: ${env:ENABLE_X_RAY, false} tracing: apiGateway: ${env:ENABLE_X_RAY,
serverless.yml
从.env
文件加载环境变量。然而,无服务器似乎只允许true
、活动
和直通
。有没有可能绕过这个问题?谢谢
# serverless.yml
provider:
name: aws
runtime: nodejs10.x
logs:
restApi: ${env:ENABLE_X_RAY, false}
tracing:
apiGateway: ${env:ENABLE_X_RAY, false}
lambda: ${env:ENABLE_X_RAY, false}
plugins:
- serverless-dotenv-plugin
如果服务的入口点是API网关,则可以在AWS X-Ray控制台上配置采样规则和限制,或使用API控制X-Ray采样的请求数 有关X射线取样的介绍,请参阅本文: 如果您对此有进一步的问题,请告诉我 更新 采样规则只能在X射线中指定。 这允许您限制跟踪的数量,无论您有多少API网关或EC2实例来处理您的请求 小提示:到目前为止,只有当入口点是API网关或实例(EC2或其他)上运行了>2.0版本的X射线守护程序时,才支持这种采样模式。如果入口点为lambda,则目前不支持此采样效果,但很快将支持此效果 在您的情况下,您似乎正在使用API网关作为入口点,因此您可以确定并使其在所有API网关端点上全局生效
您还可以为不同的URL配置不同的采样规则,例如/auth是以5个测试点采样的,而/products是根据您的用例为具有不同存储库的1个测试点配置的。感谢@Rohit提供信息。对API Gateway和API Gateway V2的模板引用都有一个快速锁定,似乎目前CloudFormation中不支持x射线和采样规则,并假设我必须使用Lambda创建一个自定义资源来实现这一点?如果可能,最好寻找IaC解决方案。采样规则在X射线更新答案中指定,以澄清采样规则需要在X射线控制台中配置,并且它们将对所有API网关处理程序产生全局影响。无需在模板中配置任何内容。
# .env
ENABLE_X_RAY=true