AWS Elastic Beanstalk-环境必须具有与其关联的实例配置文件

时间:2018-07-31 18:25:21

标签: amazon-web-services elastic-beanstalk aws-sdk aws-php-sdk

我正在从事一个项目,该项目将以编程方式在AWS Elastic beantalk中创建环境。我正在使用适用于PHP版本3的AWS开发工具包。

我的脚本创建了环境。在AWS控制台中,环境以灰色显示,并表示已终止。查看事件显示错误“环境必须具有关联的实例配置文件”。

Link to events error screenshot

我尝试使用两个不同用户的访问密钥和机密。一个用户拥有AmazonEC2FullAccess,IAMFullAccess和AWSElasticBeanstalkFullAccess权限。另一个用户具有AWSAdmin权限。两个用户都可以从AWS控制台创建环境。

我不知道如何将实例配置文件与SDK中的环境相关联。我没有看到使用createEnvironment函数执行此操作的选项:createEnvironment syntax在创建ElasticBeanstalkClient对象的实例时也没有看到执行此操作的方法。

我的代码如下。谢谢。

<?php
    require 'vendor/autoload.php';
    use Aws\ElasticBeanstalk\ElasticBeanstalkClient;
    use Aws\Credentials\Credentials;

    $key = '***key***';
    $secret = '***secret***';

    $credentials = new Credentials($key, $secret);
    $ebClient = new ElasticBeanstalkClient([
        'region'  => 'us-east-2',
        'version' => '2010-12-01',
        'credentials' => $credentials
    ]);

    $ebEnv = $ebClient->createEnvironment([
        'ApplicationName' => 'app-from-sdk',
        'EnvironmentName' => 'env-from-sdk-1',
        'CNAMEPrefix'     => 'sdk-test1',
        'Description'     => 'Test environment created from SDK.',
        //'TemplateName'    => 'PHP 7.1 version 2.7.1',
        'SolutionStackName' => '64bit Amazon Linux 2018.03 v2.7.1 running PHP 
7.1',
        'VersionLabel'    => 'Sample Application'
    ]);
    echo '<pre>';
    var_dump($ebEnv);
    echo '</pre>';

1 个答案:

答案 0 :(得分:0)

您传递的createEnvironment属性映射/哈希中缺少以下属性:

OptionSettings.member.1.Namespace = aws:autoscaling:launchconfiguration
OptionSettings.member.1.OptionName = IamInstanceProfile
OptionSettings.member.1.Value = aws-elasticbeanstalk-ec2-role

来源: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-create-api.html