An ASP.NET and ASP.NET Core application that has been instrumented for AWS X-Ray.
These applications are written to be deployed with Elastic Beanstalk or run locally.
- Attach an IAM role to your EC2 instance with the policy
- Deploy the application to Elastic Beanstalk. Steps
- Configure Sampling Rules in the AWS X-Ray Console
The App uses .ebextensions to setup AWS resources and configuration, which includes:
- Create a DynamoDB table with name
SampleProduct
- Set an application config DDB_TABLE_NAME with the create DynamoDB table name
- Install AWS X-Ray daemon as a Windows service
- AWS Credentials on the local box should have the policy
- Create a DynamoDB table with name
SampleProduct
in the desired region - Install AWS X-Ray daemon as a Windows service
- Comment DDB client creation for .NET and .NET Core, which is used for Elasticbeanstalk and uncomment line for .NET and .NET Core
- Make sure, the region is same for DDB table on the AWS console and DDB client in the code for .NET and .NETCore
- Configure Sampling Rules in the AWS X-Ray Console.
- The X-Ray daemon running locally should be configured in the same region as that of sampling rules through X-Ray console
Access the application : <Default_URL>/index.html.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:Publish",
"xray:PutTraceSegments",
"xray:PutTelemetryRecords",
"xray:GetSamplingRules",
"xray:GetSamplingTargets",
"xray:GetSamplingStatisticSummaries"
"dynamodb:PutItem",
"dynamodb:GetItem",
"dynamodb:DescribeTable"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}
- By default, SQL query is disabled.
- Create a RDS SQL Server DB instance. Steps
- Construct the connection string for SQL Server
"Data Source=(RDS endpoint),(port number);User ID=(your user name);Password=(your password);"
- Fill it into web.config key "RDS_CONNECTION_STRING" for .NET and fill the string for .NETCore
- Uncomment call to
QuerySql()
for .NET and .NETCore
- What to do if I get an "Error: Internal Server Error"?
- You can use AWS X-Ray to debug this. Go to AWS X-Ray console and find the failed trace, and look for Exception. Probably because you EC2 instance don't have the enough permission to access DynamoDB or RDS DB instance.