Object storage systems (such as Amazon Simple Storage Service
(S3) and OpenStack Swift) host collections of files and provide them
on demand. These collections are sometimes called object storage
containers object storage buckets. By including
containers in a blueprint, you can provide information about those
containers to applications.
In your components, create properties that refer to the location or other details about
object storage systems. For example, add component environment properties that refer to the
location of the object storage. Then, you can use those properties in component processes. In
this way, you provide information about the object storage to the application
components.
You can model a new container or an existing container in
a blueprint. The following object storage systems are supported:
- Amazon Simple Storage Service, which refers to containers as object
storage buckets
- OpenStack Swift, which refers to containers as object storage
containers
-
In the blueprint designer, from the Storage drawer, drag the
New Object Storage Bucket to the blueprint.
- Specify the name for the container or bucket.
To
create a container, specify a new name in the name property.
To refer to an existing container, specify the name of an existing
container.
- Optional: If you are creating a container,
specify other properties for the container.
If the container
exists, these properties are ignored.
For example,
you can specify the access control for the container with the
X-Container-Read and
X-Container-Write properties.
For example, the following code creates a new container that is named
my_object_storage
and
specifies that the users
jsmith
and
jwilson
have
read access.
my_object_storage:
type: OS::Swift::Container
properties:
name: MyObjectStorage
X-Container-Read: jsmith, jwilson
-
From the Components drawer, add one or more components to images
in the blueprint.
In the blueprint, the component resources have properties that refer to the
properties on the IBM® UrbanCode® Deploy server.
- Link the properties in the component to the properties
of the container resource.
To link a component to the
my_object_storage
container,
the code might look like the following example. In this example, the
component has a property that is named
StorageContainerURL
.
The component uses this property value to access object storage. To
provide the value for the property, refer to the matching property
on the container resource, as in the following example:
MyComponent_sw_config:
type: IBM::UrbanCode::SoftwareConfig::UCD
properties:
name: "MyComponent"
component_process: deploy
application: { get_attr: [resource_tree, application_name] }
environment_name: { get_attr: [resource_tree, environment_name] }
inputs:
StorageContainerURL : { get_attr: [my_object_storage, WebsiteURL] }
- If you are connecting to an Amazon S3 bucket, create a
configuration file and map the
OS::Swift::Container
resource
type to the IBM::S3::Bucket
resource type.
When you provision an environment from this blueprint, the
component can access the object storage container.Note: When you delete
an environment that contains an object storage container, the container
is not deleted.