AWS Elastic Beanstalk - 环境必须具有与其关联的实例配置文件
AWS Elastic Beanstalk - Environment must have instance profile associated with it
我正在从事一个项目,该项目将以编程方式在 AWS elastic beanstalk 中创建环境。我正在为 PHP 版本 3 使用 AWS SDK。
我的脚本创建了环境。在 AWS 控制台中,环境显示为灰色,表示它已终止。查看事件显示 "Environment must have instance profile associated with it".
错误
我试过使用两个不同用户的访问密钥和秘密。一位用户拥有 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>';
您传递的 createEnvironment 属性 map/hash 中缺少以下属性:
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
我正在从事一个项目,该项目将以编程方式在 AWS elastic beanstalk 中创建环境。我正在为 PHP 版本 3 使用 AWS SDK。
我的脚本创建了环境。在 AWS 控制台中,环境显示为灰色,表示它已终止。查看事件显示 "Environment must have instance profile associated with it".
错误我试过使用两个不同用户的访问密钥和秘密。一位用户拥有 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>';
您传递的 createEnvironment 属性 map/hash 中缺少以下属性:
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