Release: AWS SDK for PHP 1.2.2

Release Notes>PHP>Release: AWS SDK for PHP 1.2.2
This release adds support for AWS Elastic Beanstalk, improves stream handling for Amazon S3, and resolves issues reported on the AWS forums.

Details

Submitted By: RyanP
Release Date: January 19, 2011 7:43 AM GMT
Latest Version: 1.2.2
Created On: January 19, 2011 7:43 AM GMT
Last Updated: January 19, 2011 7:43 AM GMT

Download

Download the AWS SDK for PHP

New Features

Change Description

AWS Elastic Beanstalk API Support

AWS Elastic Beanstalk enables developers to quickly deploy and manage applications in the AWS cloud without having to worry about the physical infrastructure or the resource configuration that accompanies setting up that infrastructure. You simply upload your application to AWS Elastic Beanstalk, and AWS Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. AWS Elastic Beanstalk leverages AWS services such as Amazon EC2, Amazon S3, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to deliver the same highly reliable, scalable, and cost-effective infrastructure that thousands of businesses depend on today. Once your application is deployed, AWS Elastic Beanstalk can be used to monitor, change configuration settings, and deploy new versions. For more information on AWS Elastic Beanstalk, see http://aws.amazon.com/elasticbeanstalk.

The following sample demonstrates how to deploy an application:

// Instantiate the class
$bean = new AmazonElasticBeanstalk();

// Create a new S3 storage location for use with Elastic Beanstalk.
$s3_bucket = (string) $bean->create_storage_location()->body->S3Bucket()->first();

// Create a new application version.
$response = $bean->create_application_version('my-application', '1.1', array(
    'Description' => 'Version 1.1 of the application.',
    'AutoCreateApplication' => 'true',
    'SourceBundle' => array(
        'S3Bucket' => $s3_bucket,
        'S3Key' => 'resources/sampleapp.war'
    ),
));

// Check for failure.
if (!$response->isOK()) throw new ElasticBeanstalk_Exception('Failed to create new application version.');

// Update an running environment.
$response = $bean->update_environment(array(
    'EnvironmentName' => 'my-environment',
    'VersionLabel' => '1.1',
    'Description' => 'This is an updated environment description.',
));

// Check for failure.
if (!$response->isOK()) throw new ElasticBeanstalk_Exception('Failed to update environment with new application version.');

HTTP & File streaming improvements

Includes significant improvements for working with PHP I/O streams. Most notably, this allows for streaming data from a resource opened by file system functions.

Amazon S3 Stream Handling

File streaming in the AmazonS3 class is more reliable, and supports a wider array of stream resources.

For more information, please see: Problem with create_mpu_object() and streaming_read_callback() in S3

Resolved Issues

Issue Description

Issues with create_mpu_object() and streaming_read_callback()

Under certain versions of PHP 5.2.x and libcurl 7.18.x, curl_read returns -1 rather than 0, and is then used as size_t (an unsigned int/long). Additionally under this version set, libcurl is sensitive to returning an EOF marker as opposed to 0. These combined issues would cause cURL to throw unwarranted I/O exceptions.

Thanks to Jeremy Archuleta and Paul Voegler for tracking down the root cause, and Paul Voegler for patching it.

For more information, please see: Problem with create_mpu_object() and streaming_read_callback() in S3, AWS PHP S3 Library is not working out of the box, and PHP Bug #45220.

Known Issues

Issue Description

2GB limit for 32-bit stacks

Because PHP's integer type is signed and many platforms use 32-bit integers, the AWS SDK for PHP does not correctly handle files larger than 2GB on a 32-bit stack (whereby "stack" includes CPU, OS, web server, and PHP binary). This is a well-known PHP issue.

For more information, please see: PHP filesize: Return values. A workaround is suggested in AmazonS3::create_mpu_object() with files bigger than 2GB.

Supported API Versions

The AWS SDK for PHP supports the following services and API versions:

Service API Version
Amazon CloudFront 2010-11-01
Amazon CloudWatch 2009-05-15
Amazon Elastic Compute Cloud (Amazon EC2) with Amazon Virtual Private Cloud (Amazon VPC) 2010-08-31
Amazon Elastic MapReduce (Amazon EMR) 2009-03-31
Amazon Relational Database Service (Amazon RDS) 2010-07-28
Amazon Simple Storage Service (Amazon S3) 2006-03-01
Amazon SimpleDB 2009-04-15
Amazon Simple Notification Service (Amazon SNS) 2010-03-31
Amazon Simple Queue Service (Amazon SQS) 2009-02-01
Auto Scaling 2010-08-01
AWS Elastic Beanstalk 2010-12-01
AWS Identity and Access Management 2010-05-08
AWS Import/Export 2010-06-01
Elastic Load Balancing (ELB) 2010-07-01

Migration Guide

From Release Notes

1.2.x

Simply replace the existing SDK package with the current release.

1.0–1.1

If you are using the AmazonCloudWatch class:

  • Replace the existing SDK package with the current release.

  • Update any calls to get_metric_statistics() with the new function signature.

If you are not using the AmazonCloudWatch class, simply replace the existing SDK package with the current release.

CloudFusion 2.5

A migration guide for customers wishing to upgrade from CloudFusion 2.5 to the AWS SDK for PHP 1.0 is located at http://aws.amazon.com/articles/4263

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