-
A bug was discovered in
Aws::S3::Object#copy_from
andAws::S3::Object#copy_to
where source and target keys were not getting properly URL encoded. This would result in a signature error.If you have written code to work around this bug, you should remove the URL encoding of your key or it will be double encoded. This works for all three calling patterns.
s3 = Aws::S3::Resource.new obj = s3.bucket('target-bucket').object('target-key') # the key will now correctly be encoded as 'unescaped/key%20path' obj.copy_from(bucket:'source-bucket', key:'unescaped/key path') # the key will now correctly be encoded as 'unescaped/key%20path' src = S3::Object.new('source-bucket', 'unescaped/key path') obj.copy_from(src) # the key will now correctly be encoded as 'unescaped/key%20path' obj.copy_from('source-bucket/unescaped/key path')
-
AWS Lambda is exiting their preview period and has made changes to their control plane APIs. If you are invoking methods outside of
Aws::Lambda::Client#invoke_async
, you should switch to theAws::LambdaPreview::Client
until you can upgrade.# returns the stable 2015-03-01 API client lambda = Aws::Lambda::Client.new # returns the preview API client lambda = Aws::LambdaPreview::Client.new
-
Deprecated two methods:
Aws::S3::Client#put_bucket_notification
Aws::S3::Client#get_bucket_notification
These methods have been replaced by:
Aws::S3::Client#put_bucket_notification_configuration
Aws::S3::Client#get_bucket_notification_configuration
The method signatures for the old two methods did not correctly allow users to specify multiple topic, queue, and lambda function configurations. The new methods, suffixed by
_notification
correct these errors. The new methods now also support resource based permissions on notifications to lambda functions.s3 = Aws::S3::Client.new # old s3.put_bucket_notification( bucket: 'aws-sdk', notification_configuration: { topic_configuration: { id:'id1', events:[...] }, queue_configuration: { id:'id2', events:[...] }, cloud_function_configuration: { id:'id3', events:[...], invocation_role: '...' }, } ) # new s3.put_bucket_notification_configuration( bucket: 'aws-sdk', notification_configuration: { topic_configurations: [ { id:'id1', events:[...] } ], queue_configurations: [ { id:'id2', events:[...] } ], lambda_function_configurations: [ { id:'id3', events:[...] } ] } )
Notice the
:lambda_function_configurations
does not take an:invocation_role
and that each of the configuration types now takes a list of configurations.
-
Increased the default number of attempts to make when loading credentials from the Amazon EC2 instance metadata service before failing from 0 to 5. Also increased the default open and read timeouts from 1 to 5 seconds each. This increases the reliability of loading instance credentials.
These new defaults only affect users who are constructing
Aws::InstanceProfileCredential
objects directly. If you are using the default credential provider chain, the original defaults remain un-changed.To revert to default values:
Aws.config[:credentials] = Aws::InstanceProfileCredentials.new( retries: 0, http_open_timeout: 1, http_read_timeout: 1 )
-
Removed the
Aws::SQS::Resource
interfaces. These have not been formalized, so they have been removed as part of the stable release of theaws-sdk-resources
gem. -
Removed the
Aws::SQS::Resource
interfaces. These are unstable, so they have been removed for the public release ofaws-sdk-resources
.
-
Moved
Aws::IAM::Role#update_assume_role_policy
to a new resource class.iam = Aws::IAM::Resource.new # old iam.role('name').update_assume_role_policy(policy_document:'...') # new iam.role('name').assume_role_policy.update(policy_document:'...')
-
Renamed two methods on
Aws::IAM::MFADevice
.#enable
->#associate
#disable
->#disassociate
-
Removed
Aws::IAM::AccountSummary
. CallingAws::IAM::Resource#create_account_summary
no longer returns a resource object.iam = Aws::IAM::Resource.new # old iam.create_account_alias(account_alias:'alias') iam.account_alias('alias').delete # new (no need to specify the alias when deleting) iam.create_account_alias(account_alias:'alias') iam.delete_account_alias
Also, the
Aws::IAM::Resource#account_aliases
method has been removed. There is no replacement. IAM does not permit more than one account alias.
-
Removed
:topic_arn
from the list of identifiers required to construct anAws::SNS::Subscription
. Subscription is no longer a sub-resource of Topic.sns = Aws::SNS::Resource.new # old subscription = sns.topic(topic_arn).subscription(subscription_arn) # new subscription = sns.subscription(subscription_arn)
-
Renamed
Aws::IAM::User#create_access_key
to#create_access_key_pair
. The return value from this method has changed from an instance ofAccessKey
toAccessKeyPair
and now has an additional method,#secret
.iam = Aws::IAM::Resource.new # old key_pair = iam.user('name').create_access_key key_pair.id #=> access key id key_pair.secret #=> raises NoMethodError, oops # new key_pair = iam.user('name').create_access_key_pair key_pair.id #=> access key id key_pair.secret #=> secret_access_key
-
Moved
Aws::S3::MultipartUpload#upload_part
and#copy_part
toAws::S3::MultipartUploadPart#upload
and#copy
.mpu = s3.bucket('name').object('key').multipart_upload('id') # old mpu.upload_part(part_number:1, body:data) mpu.copy_part(part_number:1, copy_source:...) # new mpu.part(1).upload(body:data) mpu.part(1).copy(copy_source:...)
-
Renamed
Aws::OpsWorksStack#get_summary
toAws::OpsWorks::Stack#summary
. Additionally, this now returns a resource object of typeAws::OpsWorks::StackSummary
. This new object should have all of the same methods and the previous.
The aws-sdk-core
gem has moved from developer preview to a stable 2.0.0
release. Deprecated interfaces have been removed.
-
2.0.0 stable release of
aws-sdk-core
is now availablegem install aws-sdk-core
-
2.0.0 previews of
aws-sdk
andaws-sdk-resources
are now availablegem install aws-sdk --pre
-
Removed deprecated constructor on service modules.
Aws::EC2.new # removed Aws::EC2::Client.new # do this
-
Removed deprecated service helpers on Aws module.
Aws.ec2 # removed Aws::EC2::Client.new # use this
RC15 updates the Aws::DynamoDB::Client
API operations to accept and return
simple attribute values. Prior to rc14 values were specified as:
{ s: 'string-value' }
{ n: "5.0" }
This update applies a plugin that allows users to specify values using simple Ruby types, such as Integer, Float, Set, String, etc.
"string-value"
5.0
This affects every DynamoDB request and response structure that accepts or returns an attribute value. To revert to the older format, disable simple attributes:
# disable this new default behavior
Aws::DynamoDB::Client.new(simple_attributes: false)
Please Note - RC15 may be the final release candidate version prior to
a 2.0.0 final release of aws-sdk-core
.
RC14 simplifies the API versioning strategy. This may require small changes for users that use the API version locking options. Also, there are minor changes when configuring raw endpoints.
-
Versioned client classes removed, e.g.
Aws::S3::Client::V20060301.new
should be replaced withAws::S3::Client.new
The:api_version
constructor option is no longer accepted. -
Aws helper methods for client construction deprecated; For example, calling
Aws.s3
will generate a deprecation warning. CallAws::S3::Client.new
instead. Top-level helpers will be removed as of v2.0.0 final. -
When configuring an
:endpoint
directly, you must now specify the HTTP scheme, e.g. "http://localhost:3000", instead of "localhost:3000". Please note, this should only be done for testing. Normally you only need to configure a:region
.
RC 11 requires a few minor updates. These should be the final public-facing changes before 2.0.0 final.
-
The prefered constructor for services is now using the client class, example:
# deprecated, will be removed for 2.0.0 final Aws::S3.new # preferred Aws::S3::Client.new
-
The
:raw_json
option for JSON protocol based services has been renamed to:simple_json
-
The short name for Aws::SimpleDB has been renamed from
sdb
tosimpledb
.