- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的弹性 beanstalk 应用程序中需要一个队列,因此我在我的 .ebextensions/app.conf 中使用此片段创建了队列和队列策略:
Resources:
BackgroundTaskQueue:
Type: "AWS::SQS::Queue"
AllowWorkerSQSPolicy:
Type: "AWS::SQS::QueuePolicy"
Properties:
Queues:
-
Ref: "BackgroundTaskQueue"
PolicyDocument:
Version: "2008-10-17"
Id: "PublicationPolicy"
Statement:
-
Sid: "Allow-Create-Task"
Effect: "Allow"
Principal:
AWS: "*"
Action:
- "sqs:SendMessage"
Resource:
Fn::GetAtt:
- "BackgroundTaskQueue"
- "Arn"
不幸的是,我找不到在自动缩放组中引用我的 EC2 实例的实例配置文件的方法。 (目前队列对世界开放)我尝试了两种方法:
读取配置:
Principal:
AWS:
Fn::GetOptionSetting:
OptionName: "IamInstanceProfile"
OptionName 始终从 aws:elasticbeanstalk:customoption
命名空间中检索,但 IamInstanceProfile
是在 aws:autoscaling:launchconfiguration
命名空间中定义的据我所知。 -> 运气不好
从实际的 AWSEBAutoScalingLaunchConfiguration
资源中读取:
Principal:
AWS:
Fn::GetAtt:
- "AWSEBAutoScalingLaunchConfiguration"
- "IamInstanceProfile"
此方法失败,因为属性 IamInstanceProfile
未公开。
有没有人找到让这样的政策发挥作用的方法?有谁知道如何指示 GetOptionSetting 查看不同的命名空间?有人找到了获取实例配置文件的方法吗?
最佳答案
您需要在 eb 环境之外设置实例配置文件。您可以使用“aws iam”命令创建策略、角色和实例配置文件 (http://docs.aws.amazon.com/cli/latest/reference/iam/index.html#cli-aws-iam),然后在选项设置中指定配置文件:
namespace: aws:autoscaling:launchconfiguration
option_name: IamInstanceProfile
value: your-instance-profile-name
如果您使用的是 eb_deployer,则有一种独立的方法:
创建一个 CloudFormation 模板来定义您的资源堆栈,例如配置/我的资源.json:
{
"Outputs": {
"InstanceProfile": {
"Description": "defines what ec2 instance can do with aws resources",
"Value": { "Ref": "InstanceProfile" }
}
},
"Resources": {
"Role": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": ["ec2.amazonaws.com"]
},
"Action": ["sts:AssumeRole"]
}]
},
"Path": "/",
"Policies": [ {
"PolicyName": "S3Access",
"PolicyDocument": {
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*",
"s3:PutObject"
],
"Resource": "*"
}
]
}
}, {
"PolicyName": "SQSAccess",
"PolicyDocument": {
"Statement": [ {
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "*"
}]
}
}]
}
},
"InstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [ { "Ref": "Role" } ]
}
}
}
}
在您的 eb_deployer.yml 中添加“资源”部分
resources:
template: config/my-resources.json
capabilities:
- CAPABILITY_IAM
outputs:
InstanceProfile:
namespace: aws:autoscaling:launchconfiguration
option_name: IamInstanceProfile
在上面的示例中,我们定义了一个实例配置文件,其中包含允许对 S3 和 SQS 进行特定访问的策略。然后将实例配置文件名称(模板的输出)映射到 Elastic Beanstalk 选项设置。
关于amazon-web-services - 如何在 .ebextension 中引用实例配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590556/
我见过这样的示例,用于通过 ebextensions 配置创建和运行脚本: files: "C:\\scripts\\whoami.ps1": content: | date
我正在尝试升级 pip 以可能解决 dist-info directory not found 错误,但我的部署似乎完全忽略了任何尝试。是否有可能在任何 .ebextensions 脚本之前安装需求,
我想在 Elastic Beanstalk 中配置我的暂存环境以始终禁止所有蜘蛛。 nginx 指令如下所示: location /robots.txt { return 200 "User-
我正在尝试将 .ebextensions 文件夹添加到要部署到 AWS elastic beanstalk 的 jar 的根级别。 我的文件夹结构是: main: --src --resources
我有 2 个独立的环境来管理我的应用程序,一个主环境,一个带有负载平衡器的网络服务器,以及一个辅助环境,一个运行 cron 的小层 worker 。 我的 .ebextensions 包含很多实例和负
一个基本问题。什么在 ebextensions 中执行我的文件?我们使用 Cloudformations 和 elastic beanstalk 来设置 Windows 服务器。在 ebextensi
我正在使用 CodePipeline 将 git 主分支上的任何内容部署到 Elastic Beanstalk。 我按照本教程扩展了默认的 nginx 配置(特别是 max-body-size):ht
我在尝试在 aws elasticbeanstalk 中上传实例时收到以下错误: The configuration file .ebextensions/setup.config in applic
场景: AWS Elastic Beanstalk Java 应用程序 .ebextensions 当前放置在 src/main/resources/.ebextensions 中 命令没有被执行。
我的弹性 beanstalk 应用程序中需要一个队列,因此我在我的 .ebextensions/app.conf 中使用此片段创建了队列和队列策略: Resources: Backgrou
我在 .ebextensions 文件夹中有一个 powershell 脚本,但它没有执行。它曾经工作但突然停止工作并且弹性 beantalk 或我知道的脚本没有任何变化。我有两个实例在 elasti
我在 AWS Elastic Beanstalk 的软件配置选项卡中定义了一个名为 MY_ENVIRONMENT_VARIABLE 的环境变量。 现在我想在 .ebextensions 配置文件的“f
我加了 .ebextensions/start.config文件到我的 WAR 包的根文件夹(如 suggested by AWS ),将其部署到 Elastic Beanstalk,但什么也没发生。
由于日志轮换,我的 Elastic Beanstalk 实例中出现内存磁盘问题,因此我尝试按照文档修改日志轮换的默认配置: https://docs.aws.amazon.com/elasticbea
tl;dr 实例获得代入角色,而不是我在配置中设置的角色。 我在 docker 中将一个 java 应用程序部署到 elastic-beanstalk 中;实际上,我在 .ebextensions/i
我认为我走在正确的道路上。我可以使用 .ebextensions 来更改我正在运行的实例的一些 conf 文件。由于我使用的是 Elastic Beanstalk,并且很多软件都采用了收缩包装(我对此
请帮助我在 AWS(Amazon Web 服务)上启动 WAR Spring MVC Web 应用程序它因与数据库(RDS - 也是亚马逊)的连接超时而失败。 我在本地工作得很好。通过 tomcat
我试图在 AWS EB 上部署后完成一些事情。我已将我的 .ebextensions 添加到 git 存储库,但我只有一个文件 01_container_commands.config,当我拖尾 /v
我将同一个应用程序部署到两个不同的环境 app-web和 app-worker .这些环境的配置略有不同(例如它们运行不同的进程)所以有些不同 .ebextensions每个都需要。有没有办法指定某个
Docs 我试图在 conainter_commands 中传递多个命令输入并不断出错。然而,当我传递与单个条目相同的命令时,它工作正常。 作品: container_commands: 01_r
我是一名优秀的程序员,十分优秀!