magium/mcm-aws-factory

一个用于管理AWS凭证的简单库,基于Magium配置管理器

0.9.4 2017-11-20 17:46 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:16:55 UTC


README

此库为aws/aws-sdk-php库提供了一个接口,以便您可以使用Magium配置管理器。通常应用程序将有一些静态配置机制,例如XML文件、JSON文件、YAML文件或PHP文件。这本身并没有什么问题,但它将您的部署和配置关注点合并在一起。Magium配置管理器(MCM)打破了这种依赖关系,您可以将配置与部署分开管理。

设置

composer require magium/mcm-aws-factory

安装完成后,您需要使用magium-configuration命令为您的项目初始化Magium配置管理器(MCM)。您可以在vendor/bin/magium-configuration中找到它,如果不起作用,您也可以运行php vendor/magium/configuration-manager/bin/magium-configuration。在本文档中,我们将简单地称之为magium-configuration

配置

首先,列出所有配置键,以便您可以看到它们。

$ magium-configuration magium:configuration:list-keys
Valid configuration keys
aws/credentials/region

aws/credentials/key

aws/credentials/secret

然后,您需要设置这些设置

$ magium-configuration set aws/general/region us-east-1
Set aws/general/region to us-east1 (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build

$ magium-configuration set aws/general/key xxxxxxxxxxxxxxxxxxx
Set aws/general/key to xxxxxxxxxxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build

$ magium-configuration set aws/general/secret xxxxxxxxxx
Set aws/general/secret to xxxxxxxxxxx (context: default)
Don't forget to rebuild your configuration cache with magium:configuration:build

然后,您需要构建配置

$ magium-configuration build
Building context: default
Building context: production
Building context: development

用法

接下来,在您的应用程序代码中运行以下内容

$magiumFactory = new \Magium\Configuration\MagiumConfigurationFactory();
$awsFactory = new \Magium\AwsFactory\AwsFactory($magiumFactory->getConfiguration());

$ec2Client = $awsFactory->factory(\Aws\Ec2\Ec2Client::class);
$result = $ec2Client->describeSecurityGroups();
$groups = $result->get('SecurityGroups');

foreach ($groups as $count => $group) {
    echo sprintf("\nSecurity Group: %d\n", $count);
    foreach ($group as $name => $value) {
        if (is_string($value)) {
            echo sprintf("%s: %s\n", $name, $value);
        }
    }
}

您可以在[测试/get-security-groups.php](sample test script)中尝试此操作。