我正在使用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) 我有两个帐户:生产和分期.我正在使用aws-cli v3通过GIT部署到我的生产环境eb deploy
我希望能够定期从我的开发分支部署到我的临时环境,在部署发行版时,我希望能够从我新创建的发布分支部署到我的生产环境.
我已经有了我的〜/ .aws/config文件和我的两个帐户密钥集(登台和生产),并且希望能够做到这样的事情:
eb deploy --profile staging
Run Code Online (Sandbox Code Playgroud)
和
eb deploy --profile production
Run Code Online (Sandbox Code Playgroud)
是否有必要具有相同的帐户和使用情况下这两个环境eb use production-env和eb use staging-env?
我在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中看到该策略?
我正在尝试通过Amazon CLI在Route53中创建TXT记录以进行DNS-01验证.似乎我非常接近但可能遇到CLI问题(或我没有看到的格式问题).正如你所看到的,它抱怨一个应该在引号中的值,但确实在引号中......
命令行:
aws route53 change-resource-record-sets --hosted-zone-id ID_HERE --change-batch file://c:\dev\test1.json
Run Code Online (Sandbox Code Playgroud)
JSON文件:
{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "DOMAIN_NAME_HERE",
"Type": "TXT",
"TTL": 60,
"ResourceRecords": [
{
"Value": "test"
}
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
错误:
An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: Invalid Resource Record: FATAL problem: InvalidCharacterString (Value should be enclosed in quotation marks) encountered with 'test'
Run Code Online (Sandbox Code Playgroud) 假设我有一个网站,当我使用curl发送GET请求时返回JSON数据.我想将curl的输出重定向到AWS S3.应该在S3上为它创建一个新文件.
目前我能够重定向输出以在本地存储它.
curl -s -X GET 'http://website_that_returns_json.com' > folder_to_save/$(date +"%Y-%m-%d_%H-%M.json")
Run Code Online (Sandbox Code Playgroud)
我AWS CLI和s3cmd安装.如何重定向create的输出以在AWS S3上创建新文件?
假设:
mybucket/$(date +"%Y-%m-%d_%H-%M.json"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
我只想找回一个函数名列表.理想情况下,我希望从"some-prefix*"开始获取所有函数(只是它们的名称).我可以用cli做到这一点吗?
如果可能的话,真的希望这个作为cli命令(我想避免使用python或其他sdk).我看到有一个--cli-input-jsonarg,我可以用它进行过滤吗?
作为我的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) aws-cli ×10
amazon-s3 ×2
amazon-ec2 ×1
aws-lambda ×1
homebrew ×1
lambda ×1
macos-sierra ×1
python ×1
recordset ×1
shell ×1