Release: AWS SDK for .NET 1.1.0

Release Notes>.NET>Release: AWS SDK for .NET 1.1.0
Update API for Amazon RDS, Elastic Load Balancing, Amazon IAM and Amazon Elastic MapReduce. Also added new support for AWS Import/Export.

Details

Submitted By: Norm@AWS
Release Date: October 20, 2010 12:00 AM GMT
Created On: October 21, 2010 12:10 AM GMT
Last Updated: October 21, 2010 3:31 AM GMT

What's New?

ChangeDescription
Amazon RDS Read Replicas Amazon RDS Read Replicas allow you to create one or more replicas of a given "source" DB Instance and serve incoming read traffic from multiple copies of your data. This new database deployment option enables you to elastically scale out beyond the capacity constraints of a single DB Instance for read-heavy database workloads. You can use Read Replicas in conjunction with Multi-AZ replication for scalable, reliable, and highly available production database deployments. To learn more about the release of Read Replicas, please visit the forum post.

To create a Read Replica from an existing Amazon RDS DB Instance using the AWS SDK for .NET:

DBInstance createdReadReplicaInstance = rdsClient.CreateDBInstanceReadReplica(
		new CreateDBInstanceReadReplicaRequest()
			.WithDBInstanceIdentifier("myNewReadReplicaDB")
			.WithSourceDBInstanceIdentifier("myExistingDB")
			.WithAutoMinorVersionUpgrade(true)
			.WithDBInstanceClass("db.m1.small")
			.WithPort(3306)).CreateDBInstanceReadReplicaResult.DBInstance;
      

Amazon RDS Reserved Instances Support for Reserved DB Instances - With Reserved DB Instances, you can now make a one-time, up-front payment to create a one or three year reservation to run your DB Instance in a specific Region and receive a significant discount off of the ongoing hourly usage charge. Your DB Instances will work just as they do today, but can lower your costs over the life of your database.

To purchase a reserved instance using the AWS SDK for .NET:

rdsClient.PurchaseReservedDBInstancesOffering(new PurchaseReservedDBInstancesOfferingRequest()
	.WithDBInstanceCount(1)
	.WithReservedDBInstancesOfferingId(reservedDBInstancesOfferingId));
      

Amazon RDS Version Management With DB Engine Version Management, Amazon RDS gives you additional (yet optional) control over the version of relational database software (i.e. MySQL) powering your DB Instance. The goal of this functionality is to provide you the flexibility to maintain compatibility with specific MySQL versions, test new versions with your application before deploying in production, and perform version upgrades on your own terms and timelines.

The Engine Version can be set on the CreateDBInstanceRequest object using the EngineVersion property.

Elastic Load Balancing HTTPS Endpoints HTTPS support in Elastic Load Balancing allows you to decrypt SSL/TLS traffic at the load balancer - offloading this task from your application instances. All of the load balancing features available to HTTP sessions, including session stickiness, are available for use with HTTPS sessions. HTTPS support for Elastic Load Balancing also includes centralized storage and management for your SSL server certificates rather than managing certificates on individual application instances.

To create a new SSL listener on an existing load balancer using the AWS SDK for .NET:

/*
* Elastic Load Balancing server certificates are managed through the Amazon Identity and
* Access Management service.  Use IAM to upload your server certificate,
* then pass its Amazon Resource Name (ARN) to Elastic Load Balancing.
*/
String myCertificateArn = "arn:aws:iam::123456789012:myCert";
elb.CreateLoadBalancerListeners(new CreateLoadBalancerListenersRequest()
		.WithLoadBalancerName("myExistingLoadBalancer")
		.WithListeners(new Listener()
			.WithInstancePort(8181)
			.WithLoadBalancerPort(443)
			.WithProtocol("SSL")
			.WithSSLCertificateId(myCertificateArn)));
	   

Amazon IAM Server Certificates You can centrally manage your server certificates using the Amazon Identity and Access Management API. Amazon IAM allows you to get, delete, list, upload and update server certificates. You can then use your server certificates to create SSL listeners on your Elastic Load Balancing load balancers.
iamClient.UploadServerCertificate(new UploadServerCertificateRequest()
			.WithCertificateBody(publicKey)
			.WithPrivateKey(privateKey)
			.WithPath("/mycerts/")
			.WithServerCertificateName(certName));
  
AWS Import/Export Client The AWS SDK for .NET includes the AWS Import/Export client, allowing you to easily work with the AWS Import/Export service and schedule jobs to import and export your data from Amazon S3.
importExportClient.CreateJob(new CreateJobRequest()
	 .WithJobType(JobTypeConstants.Import)
	 .WithManifest(manifest));
  
Amazon Elastic MapReduce Resizable Job Flow Support With the latest version of the AWS SDK for .NET, you can take advantage of Amazon Elastic Map Reduce's new ability to dynamically modify the size of running job flows. You now have the flexibility to add or remove slave nodes based on the changing capacity needs of your job flow. You may also include a predefined step in your workflow that automatically resizes a job flow between steps that are known to have different capacity needs. This will allow you to better customize your capacity usage to meet the unique requirements of your job flows, improving performance while enabling you to save money. Further, Elastic MapReduce now automatically provisions new slave nodes if a slave node fails, providing you an even greater level of fault tolerance. For more details on modifying the size of your running job flows, please visit Resizing Running Job Flows in the Elastic MapReduce Developer's Guide.
Amazon Elastic MapReduce Client Enhancements

In addition to the support for resizable Amazon Elastic Map Reduce clusters, the Elastic MapReduce client in the AWS SDK for .NET now includes two new utility classes to help configure Job Flows:

Other Changes

A number of changes were made to existing APIs for Amazon RDS, Amazon Elastic MapReduce, and Elastic Load Balancing. Please see the following section, "Important Changes to Amazon RDS, Elastic Load Balancing, and Amazon Elastic MapReduce" for more details.

Fixed an issue with GetObjectMetadata errors not being properly handled.

Added the ability to create Principals with a provider of CanonicalUser when crafting policies.

Added the property AutoCloseStream to Amazon S3's PutObjectRequest object that is true by default which means a stream passed into to the request object will be closed when all the content has been read from the stream.

Fixed an issue with CloudFront's CreateDistribution and GetDistributionInfo methods when Trusted Signers are used.

Fixed an issue with date parsing using CloudFront's ListDistributions method.

Fixed an issue with setting Expect100Continue and UseNagleAlgorithm at the global ServicePointManger which was causing issues with other libraries.

Important Changes to Amazon RDS, Elastic Load Balancing, and Amazon Elastic MapReduce

This release contains changes that might require changes to your code.

Title Description
ResponseMeta The classes Amazon.ElasticLoadBalancing.Model.ResponseMeta, Amazon.ElasticMapReduce.Model.ResponseMeta and Amazon.RDS.Model.ResponseMeta were moved to the common location Amazon.Runtime.ResponseMeta.
Removed ToXML methods The ToXML methods were removed so the responses can be streamed from the services for improved performance.
Amazon RDS Data Type Changes
  • The type of the MaxRecords property has been changed from decimal to int in the following classes: DescribeDBEngineVersionsRequest, DescribeDBInstancesRequest, DescribeDBParameterGroupsRequest, DescribeDBParametersRequest, DescribeDBSecurityGroupsRequest, DescribeDBSnapshotsRequest, DescribeEngineDefaultParametersRequest, DescribeEventsRequest, DescribeReservedDBInstancesOfferingsRequest and DescribeReservedDBInstancesRequest.
  • The type of the Port property has been changed from decimal to int in the following classes: CreateDBInstanceReadReplicaRequest, CreateDBInstanceRequest, DBSnapshot, DescribeDBInstancesRequest, Endpoint, PendingModifiedValues, RestoreDBInstanceFromDBSnapshotRequest and RestoreDBInstanceToPointInTimeRequest.
  • The type of the AllocatedStorage property has been changed from decimal to int in the following classes: CreateDBInstanceRequest, DBInstance, DBSnapshot, ModifyDBInstanceRequest and PendingModifiedValues.
  • The type of the BackupRetentionPeriod property has been changed from decimal to int in the following classes: CreateDBInstanceRequest, DBInstance, ModifyDBInstanceRequest and PendingModifiedValues.
Amazon RDS Property Name Changes The following property names were changed to be pluralized.
  • DescribeDBSecurityGroupsResponse.DBSecurityGroups
  • DBSecurityGroup.EC2SecurityGroups
  • DBSecurityGroup.IPRanges
  • DBInstance.DBSecurityGroups
  • DBInstance.DBParameterGroups
  • DescribeEventsResponse.Events
  • DescribeDBInstances.DBInstances
  • DescribeDBParameterGroupsResponse.DBParameterGroups
  • EngineDefaults.Parameters
  • DescribeDBSnapshots.DBSnapshots
Amazon Elastic Load Balancing Data Type Changes
  • The type of the CookieExpirationPeriod property has been changed from decimal to int in the following class: CreateLBCookieStickinessPolicyRequest
  • The type of the Interval property has been changed from decimal to int in the following class: HealthCheck
  • The type of the Timeout property has been changed from decimal to int in the following class: HealthCheck
  • The type of the UnhealthyThreshold property has been changed from decimal to int in the following class: HealthCheck
  • The type of the HealthyThreshold property has been changed from decimal to int in the following class: HealthCheck
  • The type of the LoadBalancerPort property has been changed from decimal to int in the following class: Listener
  • The type of the InstancePort property has been changed from decimal to int in the following class: Listener
  • The type of the LoadBalancerPort property has been changed from decimal to int in the following class: Listener
  • The type of the LoadBalancerPort property has been changed from decimal to int in the following class: SetLoadBalancerPoliciesOfListenerRequest
Amazon Elastic MapReduce Data Type Changes
  • The type of the CreatedAfter property has been changed from string to DateTime in the following class: DescribeJobFlowsRequest
  • The type of the CreatedBefore property has been changed from string to DateTime in the following class: DescribeJobFlowsRequest
  • The type of the InstanceCount property has been changed from decimal to int in the following class: JobFlowInstancesConfig

Supported API Versions

This release of the AWS SDK for .NET supports the following API versions:

Service API Version
Amazon EC2 2010-08-31
Amazon S3 2006-03-01
Amazon SimpleDB 2009-04-15
Amazon RDS 2010-07-28
Amazon CloudFront 2010-08-01
Amazon SQS 2009-02-01
Amazon Elastic MapReduce 2009-03-31
Amazon CloudWatch 2009-05-15
Amazon Elastic Load Balancing 2010-07-01
Amazon Auto Scaling 2009-05-15
Amazon Simple Notification Service 2010-03-31
Amazon Identity and Access Management 2010-05-08
AWS Import/Export 2010-06-01

Known Issues

Issue Description
Installation Requires Administrator Privileges The default install location is %PROGRAMFILES%, which on most computers is "c:\program files". In order to install files to the default location, the MSI must be run by an Administrator. If you don't have Administrator privileges on the machine, please change the install location to something like "c:\Documents and Settings\<you>\AWS SDK for .NET", and the install will complete successfully. If you are running on Vista, your personal folder is similar to "c:\users\<you>\".
Uninstalling the SDK Produces "Unknown Publisher" Message On Windows Vista, uninstalling the MSI results in an "Unknown Publisher" dialog even though the installer is signed by Amazon Web Services. This is a known Windows Installer bug on Windows Vista, and is documented here: http://support.microsoft.com/kb/929467/en-us

Download the AWS SDK for .NET from http://aws.amazon.com/sdkfornet/.

©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved.