Download the PHP package outcompute/cloudmetadata without Composer
On this page you can find all versions of the php package outcompute/cloudmetadata. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download outcompute/cloudmetadata
More information about outcompute/cloudmetadata
Files in outcompute/cloudmetadata
Package cloudmetadata
Short Description Get metadata JSON within an instance from 169.254.169.254 across providers.
License MIT
Informations about the package cloudmetadata
CloudMetaData
A simple PHP library to fetch instance meta data from the link local address of http://169.254.169.254 from within an instance.
- Supports AWS, Azure, DigitalOcean & Google Cloud.
- Results can be cached in a file.
- Always refreshes metadata after a restart.
The 169.254.169.254 is a link-local address and you can read up more about them here.
Installation
Add this line to your composer.json file,
and run.
In case you don't want to use composer, you'll have to include all the files, something like this:
How to use
Without cache
With cache (only 'File' available at the moment)
Templated Responses
If you've cross cloud deployments and use the metadata in any way, then it'd help to have the metadata in a consistent manner.
Support has been added for templates which allows you to specify templates and tokens. A few sample tokens have been provided.
Common and provider agnostic tokens are processed in src/TemplateParser/Base.php
whereas provider specific tokens are parsed in their specific handlers present in src/TemplateParser
.
The templates have to be stored in the templates directory, and the file name provided as the second argument to OutCompute\CloudMetaData\MetaData()::get()
.
The tokens don't have to follow the heirarchy from the templates they are included in and can be any string as long as they are handled in any parser. The initial set of supported tokens seem to follow the heirarchy in basic.json with a dot(.) as a separator, but that is not a strict requirement.
However, if you're contributing to the repository then it'd be great if the tokens followed some structure.
TODO
- Add other cloud providers, eg: Linode, etc.
- Add test cases
- General improvements
- Supporting templates in varied configurations and extending the set of supported tokens
License
MIT