我正在使用AWS CLI,并且在使用以下命令AWS Configure
启动EC2实例时已使用它进行配置:
C:\>aws ec2 run-instances --dry-run --image-id ami-b5a7ea85 --count 1 --instance
-type t2.micro --key-name ec2_key --iam-instance-profile Arn=arn:aws:iam::132895
064974:instance-profile/ec2Admin
Run Code Online (Sandbox Code Playgroud)
它给了我:
A client error (UnauthorizedOperation) occurred when calling the RunInstances op
eration: You are not authorized to perform this operation. Encoded authorization
failure message: 4doSfAQy0gcqKr1O-raIb0C83C2kLWQY8hjZ4gVtwUz6xSAwOtD2wumVnpgsz5
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Mac上运行AWS CLI.我正在尝试使用iot-data API读/写阴影状态.该命令实际上正常工作,但每次都会抛出OpenSSL/TLS错误.
$ aws iot-data get-thing-shadow --thing-name "my-thing-20160209" my-thing-20160209.json
/usr/local/Cellar/awscli/1.10.1/libexec/vendor/lib/python2.7/site-packages/botocore/handlers.py:574: UnsupportedTLSVersionWarning: Currently installed openssl version: OpenSSL 0.9.8zg 14 July 2015 does not support TLS 1.2, which is required for use of iot-data. Please use python installed with openssl version 1.0.1 or higher.
UnsupportedTLSVersionWarning
Run Code Online (Sandbox Code Playgroud)
这是AWS版本.
aws-cli/1.10.1 Python/2.7.10 Darwin/14.5.0 botocore/1.3.23
如您所见,我使用Homebrew安装所有.OpenSSL和Python正确链接.我在系统上找不到任何引用OpenSSL 0.9.8zg的内容,并且Python加载了正确的OpenSSL版本.
$ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 1.0.2f 28 Jan 2016
Run Code Online (Sandbox Code Playgroud)
有迹象表明其他因素可能会触发错误:https: //forums.aws.amazon.com/thread.jspa?messageID = 690051 #690051
但是,由于我实际上可以检索阴影状态,因此错误必须归因于其他原因.
可能导致此错误的任何想法?
更新时间:2016-09-15包括Python信息
$ head $(which aws)
#!/bin/bash
PYTHONPATH="/usr/local/Cellar/awscli/1.10.51/libexec/lib/python2.7/site-packages:/usr/local/Cellar/awscli/1.10.51/libexec/vendor/lib/python2.7/site-packages" exec …Run Code Online (Sandbox Code Playgroud) 我在s3上有一个存储桶,并且用户可以完全访问该存储桶.
我可以执行ls命令并查看存储桶中的文件,但是下载它们会失败:
A client error (403) occurred when calling the HeadObject operation: Forbidden
我还尝试通过IAM控制台授予用户完全S3权限的用户.同样的问题.
作为参考,这是我的IAM政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我也尝试添加一个存储桶策略,甚至将存储桶公开,但仍然没有...也是,从控制台,我试图对存储桶中的文件设置单独的权限,并得到一个错误,说我无法查看存储桶,这很奇怪,因为我在消息出现时从控制台查看它,并且可以ls在桶中进行任何操作.
编辑我的存储桶中的文件是使用我帐户中的凭据从另一个属于不同帐户的存储桶中复制的.可能相关也可能不相关......
第二次编辑只是尝试从其他存储桶上传,下载和复制我自己的文件到这个桶,它工作正常.问题特别在于从另一个帐户的存储区放置的文件.
谢谢!
我使用“ aws lambda add-permission”向我的Lambda函数访问策略添加了权限。我可以通过“ aws lambda get-policy”取回该策略,但是在哪里可以在AWS Management Console中看到该策略?
我试图在我的dynamodb中建立某个属性的直方图.
我认为最简单的方法是使用多个filter-expression
这是我的基线查询与单一filter-expression,它的工作原理
aws dynamodb scan --table-name test --select "COUNT" --filter-expression "contains(score, :s)" --expression-attribute-values '{ ":s": { "N": "1" } }' --limit 100
Run Code Online (Sandbox Code Playgroud)
现在,我试图将它扩展到多个filter expressions,我不知道如何.
我试过了:
aws dynamodb scan --table-name test --select "COUNT" --filter-expression "score = :s" --filter-expression "score = :s1" --expression-attribute-values '{ ":s": { "N": "1" }, ":s1": { "N": "40" } }' --limit 100
Run Code Online (Sandbox Code Playgroud)
和
aws dynamodb scan --table-name test --select "COUNT" --filter-expression "score = :s" | "score = :s1" --expression-attribute-values '{ ":s": …Run Code Online (Sandbox Code Playgroud) 尝试使用aws-cli将文件上传到AWS S3存储桶时,是否会自动在较大的文件上使用分段上传?因为它的所有输出都是
Completed 3.0 GiB/9.4 GiB (18.4 MiB/s) with 1 file(s) remaining
这不会让我更聪明.
我检查了其他几个信息来源,这个页面告诉我它会自动进行,而亚马逊帮助告诉我.
AWS CLI Mavens,
通过macOS的终端,尝试在macOS Sierra 10.12.6上安装和配置AWS CLI以使用Python 3.6.2 代替 macOS的默认Python 2.7.10。
尽管我严格遵循AWS的说明(http://docs.amazonaws.cn/en_us/cli/latest/userguide/cli-install-macos.html),包括因此配置./bash_profile:
# Setting PATH for Python 3.6.x
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)
并通过仔细检查 **echo $PATH**
PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
Run Code Online (Sandbox Code Playgroud)
执行时
$ aws --version
Run Code Online (Sandbox Code Playgroud)
结果总是这样:
aws-cli/1.10.60 Python/2.7.10 Darwin/16.7.0 botocore/1.4.50
Run Code Online (Sandbox Code Playgroud)
预先感谢您提供有关如何配置AWS CLI以忽略Python 2.7.10并通过Python 3.6.x执行的任何建议。
平面扭曲者
python command-line-interface amazon-web-services aws-cli macos-sierra
作为我的shell脚本的一部分,我正在尝试在AWS Route53中创建记录集.但是,使用我的shell脚本中的aws cli中的变量来创建这些记录集,我在Shell脚本中导出的变量不会传递给aws cli命令.
AWS提供的AWS CLI命令:
$ aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC \
--change-batch file:///path/to/record.json
Run Code Online (Sandbox Code Playgroud)
为简单起见,我不想在我的计算机上创建单独的json文件,我想在shell脚本中包含所有命令和变量.
#!/bin/bash
export TARGET_ENVIRONMENT=uat
export BASE_ENVIRONMENT_DNS=abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com
# Creates route 53 records based on env name
aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC
--change-batch '{ "Comment": "Testing creating a record set",
"Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name":
"$(TARGET_ENVIRONMENT).company.com", "Type": "CNAME", "TTL":
120, "ResourceRecords": [ { "Value": "$(BASE_ENVIRONMENT_DNS)" } ] } } ] }'
Run Code Online (Sandbox Code Playgroud)
最后一个命令是在AWS Route53上创建一个记录集,如下所示:
$(TARGET_ENVIRONMENT).company.com
Run Code Online (Sandbox Code Playgroud)
与CNAME一样
$(BASE_ENVIRONMENT_DNS)
Run Code Online (Sandbox Code Playgroud)
而不是我想要的那样,这是:
uat.company.com
Run Code Online (Sandbox Code Playgroud)
使用CNAME:
abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com …Run Code Online (Sandbox Code Playgroud) 我有一个要求,希望确保所有单独的 Lambda 函数都使用最新版本的运行时。
使用 CLI cmd:aws lambda get function我能够获取该特定 lambda 函数的运行时版本,但我想确保它使用最新的语言版本。
浏览 Lambda 的 Aws 文档https://docs.aws.amazon.com/cli/latest/reference/lambda我无法找到任何可以判断哪些可用运行时的 API,也许从该列表中我可以确定哪个是最新的(也许通过检查该特定语言的最高版本号)。
所以只是想知道是否有我找不到的 AWS API 或者其他可以实现这一目标的方法?
注意:我不是在谈论 Lambda 函数版本控制,而是在谈论语言运行时版本。
例如,目前 AWS lambda 的最新运行时是 Node.js 8.10。因此,如果任何 Lambda 函数使用 Node.js 6.10 作为运行时,那么我想突出显示该 Lambda 函数。
我有一个在 AWS ECS 中运行的 Fargate 应用程序,我正在尝试通过 AWS CLI (aws-cli/1.16.96 Python/2.7.15 Darwin/18.0.0 botocore/1.12.86 ) 更新该应用程序。
我已经成功构建并推送了图像,并创建了新的任务定义版本。
当我尝试使用以下命令更新服务时:
aws ecs update-service
--cluster cluster-winquest-qa
--service container-qa-ge-service
--desired-count 0
Run Code Online (Sandbox Code Playgroud)
aws ecs update-service
--cluster cluster-qa
--service container-service
--task-definition first-run-task-definition:5
--platform-version "LATEST"
--desired-count 1
Run Code Online (Sandbox Code Playgroud)
抛出以下错误消息:
An error occurred (InvalidParameterException) when calling the UpdateService operation: Task definition does not support launch_type FARGATE
Run Code Online (Sandbox Code Playgroud)
然后我尝试将 --launch-type "FARGATE" 添加到上述命令中,构建以下命令:
aws ecs update-service
--cluster cluster-qa
--service container-service
--task-definition first-run-task-definition:5
--platform-version "LATEST"
--launch-type "FARGATE"
--desired-count 1
Run Code Online (Sandbox Code Playgroud)
它抛出:
Unknown options: --launch-type, FARGATE
我知道错误消息表明 …
aws-cli ×10
amazon-s3 ×2
aws-lambda ×2
amazon-ec2 ×1
amazon-ecs ×1
homebrew ×1
macos-sierra ×1
multipart ×1
python ×1
recordset ×1
shell ×1