如何通过API更新Elastic Beanstalk环境的环境属性?

时间:2013-09-20 11:31:09

标签: amazon-web-services clojure elastic-beanstalk

我正在使用适用于PHP的AWS开发工具包(但该平台无关紧要),并希望更新我的Elastic Beanstalk环境的环境属性

Elastic Beanstalk Environment Properties

我已经阅读了文档,我能找到的唯一似乎更新配置的操作是UpdateConfigurationTemplate

此操作是否可以在单个环境中更新单个环境属性,而无需触及任何已保存的配置?我对“模板”命名感到困惑。

否则,在单个环境中以编程方式更新单个环境属性的正确操作是什么?

2 个答案:

答案 0 :(得分:3)

updateEnvironment操作中找到它:

$elasticBeanstalkClient->updateEnvironment([
    'EnvironmentName' => $environment,
    'OptionSettings' => [
        [
            'Namespace'  => 'aws:elasticbeanstalk:application:environment',
            'OptionName' => $key,
            'Value'      => $value
        ]
    ]
]);

我在describeConfigurationSettings返回的值中找到了正确的Namespace,对于任何应用程序/环境,这都可能是相同的。

答案 1 :(得分:0)

只是为了向Google提供此功能,以下是使用Amazonica在Clojure中执行此操作的方法:

添加到 project.clj

:dependencies [[amazonica "0.2.10"]]

然后,在您的代码(或REPL)中:

(require '[amazonica.core :as aws]
         '[amazonica.aws.elasticbeanstalk :as eb])

(def aws-access-key "YOUR ACCESS KEY")
(def aws-secret-key "YOUR SECRET KEY")
(def eb-env-name "YOUR ELASTIC BEANSTALK ENVIRONMENT NAME")

(aws/defcredential aws-access-key aws-secret-key)

(eb/update-environment :environment-name eb-env-name
                       :option-settings [{:namespace "aws:elasticbeanstalk:application:environment"
                                          :option-name "KEY"
                                          :value "VALUE"}])