我有一个python脚本,需要一段时间才能完成执行,具体取决于传递的参数.因此,如果我从两个具有不同参数的终端运行它们,它们是否获得了自己的代码版本?我看不到.pyc生成两个文件.
1号航站楼运行: python prog.py 1000 > out_1000.out
在终端1上运行的脚本终止之前,我开始运行另一个; 因此终端2运行: python prog.py 100 > out_100.out
或者基本上我的问题是他们可以互相干扰吗?
我试图列出不同标签键的标签值上的实例例如>一个标签键 - 环境,其他标签键 - 角色.我的代码如下:
import argparse
import boto3
AWS_ACCESS_KEY_ID = '<Access Key>'
AWS_SECRET_ACCESS_KEY = '<Secret Key>'
def get_ec2_instances(Env,Role):
ec2 = boto3.client("ec2", region)
reservations = ec2.describe_instances(Filters={"tag:environment" : Env, "tag:role" : Role})
for reservation in reservations["Reservations"] :
for instance in reservation["Instances"]:
print "%s" % (instance.tags['Name'])
if __name__ == '__main__':
regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1',
'ap-southeast-1','ap-southeast-2','ap-northeast-1']
parser = argparse.ArgumentParser()
parser.add_argument('Env', default="environment", help='value for tag:environment');
parser.add_argument('Role', default="role", help='value for tag:role');
args = parser.parse_args()
for region in regions: get_ec2_instances(args.Env, args.Role)
Run Code Online (Sandbox Code Playgroud)
运行此脚本后:python script.py arg1 arg2
我收到了以下错误
Traceback …Run Code Online (Sandbox Code Playgroud) 是否可以使用boto3将一个源存储桶中的所有文件复制到其他目标存储桶.而源存储桶没有常规的文件夹结构.
Source bucket: SRC
Source Path: A/B/C/D/E/F..
where in D folder it has some files,
E folder has some files
Target bucket: TGT
Target path: L/M/N/
Run Code Online (Sandbox Code Playgroud)
我需要使用boto3将SRC存储桶上方的所有文件和文件夹从文件夹C复制到N文件夹下的TGT存储桶.
任何人都可以知道任何API,或者我们是否需要编写新的python脚本来完成此任务.
嗨,我是创建 Flask 应用程序的新手,我创建了一个小 GUI 来将文件上传到 S3 存储桶 这是处理相同内容的代码片段
s3 = boto3.client('s3', region_name="eu-west-1",
endpoint_url=S3_LOCATION, aws_access_key_id=S3_KEY, aws_secret_access_key=S3_SECRET)
myclient = boto3.resource('s3')
file = request.files['file[]']
filename=file.filename
data_files = request.files.getlist('file[]')
for data_file in data_files:
file_contents = data_file.read()
ts = time.gmtime()
k=time.strftime("%Y-%m-%dT%H:%M:%S", ts)
name=filename[0:-4]
newfilename=(name+k+'.txt')
myclient.Bucket(S3_BUCKET).put_object(Key=newfilename,Body=file_contents)
message='File Uploaded Successfully'
print('upload Successful')
Run Code Online (Sandbox Code Playgroud)
当我从我的本地系统测试它时,该部分工作正常,但在将其上传到 EC2 实例时,该部分
myclient.Bucket(S3_BUCKET).put_object(Key=newfilename,Body=file_contents)
Run Code Online (Sandbox Code Playgroud)
是抛出错误的地方:
botocore.exceptions.NoCredentialsError:无法找到凭据
我创建了一个文件 config.py,我在其中存储所有凭据并在运行时传递它们。不确定是什么导致 EC2 实例出错,请帮我解决
背景:
列出IAM用户的AWS操作默认返回最大值50.
阅读下面的文档(链接),我运行了以下代码,并通过将"MaxItems"设置为1000来返回完整的设置数据.
paginator = client.get_paginator('list_users')
response_iterator = paginator.paginate(
PaginationConfig={
'MaxItems': 1000,
'PageSize': 123})
for page in response_iterator:
u = page['Users']
for user in u:
print(user['UserName'])
Run Code Online (Sandbox Code Playgroud)
http://boto3.readthedocs.io/en/latest/guide/paginators.html https://boto3.readthedocs.io/en/latest/reference/services/iam.html#IAM.Paginator.ListUsers
题:
例如,如果将"MaxItems"设置为10,那么循环结果的最佳方法是什么?该
我测试了以下但是它只在'IsTruncated'== False之前循环2次迭代并导致"KeyError:'Marker'".不知道为什么会这样,因为我知道有超过200个结果.
marker = None
while True:
paginator = client.get_paginator('list_users')
response_iterator = paginator.paginate(
PaginationConfig={
'MaxItems': 10,
'StartingToken': marker})
#print(response_iterator)
for page in response_iterator:
u = page['Users']
for user in u:
print(user['UserName'])
print(page['IsTruncated'])
marker = page['Marker']
print(marker)
else:
break
Run Code Online (Sandbox Code Playgroud)
谢谢.
我在Amazon s3存储桶中有一堆文件,我想压缩这些文件并使用Java Spring通过S3 URL下载获取内容.
我在我的linux机器上安装了boto3.当我通过以下命令时,我将botocore版本设为1.2.6
>>> import boto3
>>> print boto3.__version__
1.2.6
Run Code Online (Sandbox Code Playgroud)
如何升级到boto3到1.4或最新版本中的botocore?如果我需要将botocore 1.4降级到botocore 1.2.6,那么步骤是什么?
如何列出打开版本控制标志的所有 s3 存储桶名称?
我有 100 个 s3 存储桶。某些存储桶已打开版本控制标志。我想使用 boto3 列出所有这些存储桶名称。
我在下面给出了我的 python 代码片段。
import boto3
REGION = "us-east-1"
s3client = boto3.client('s3',region_name=REGION)
for bucket in s3client.list_buckets()['Buckets']:
bucket = bucket['Name']
response = s3client.get_bucket_versioning(Bucket=bucket)
if 'Status' in response and response['Status'] == 'Enabled':
print(bucket)
Run Code Online (Sandbox Code Playgroud) 我有一个脚本可以跨区域复制未加密和加密的快照。脚本在未加密的快照副本上运行良好,但由于某种原因,加密副本失败并出现错误:-
An error occurred (InvalidParameterValue) when calling the CopyDBSnapshot operation: PreSignedUrl could not be authenticated.
Run Code Online (Sandbox Code Playgroud)
这是我用来复制加密快照的代码
aws rds copy-db-snapshot
--source-db-snapshot-identifier $source_identifier \
--target-db-snapshot-identifier ${target_identifier} \
--kms-key-id $Enc_Key_ID\
--region $target_region
--source-region $source_region \
--tags Key="owner",Value="RDS Copy Job"
Run Code Online (Sandbox Code Playgroud)
此处传递的所有变量(加密密钥除外)与跨区域的未加密副本一起正常工作。
我想知道出了什么问题。任何帮助和建议对我都有很大帮助。(更新)
aws rds copy-db-snapshot \
--source-db-snapshot-identifier arn:aws:rds:us-west-1:717934610271:snapshot:rds:rds-snapshot??-name-dev-2017-12-22??-08-08 \
--target-db-snapshot-identifier test-rds-snapshotname \
--kms-key-id XXXXXX-XXXXXX-XXXXXX-XXXXXX \
--region us-east-1\
--source-region us-west-1 \
--tags Key="owner",Value="RDS Copy Job"
Run Code Online (Sandbox Code Playgroud)
以上是用于复制的完整命令。我正在使用 ARN 进行复制
我的公司有一个消息传递系统,它以JSON格式发送实时消息,它不是在AWS上构建的,也不会与AWS有任何VPN连接.
我们的团队正在尝试使用AWS SQS接收这些消息,然后将DynamoDB处理JSON消息发送到TSV,然后加载到RDS.
但是,根据FAQ,SQS只能从AWS内部接收消息. https://aws.amazon.com/sqs/faqs/
问:谁可以对消息队列执行操作?
只有AWS账户所有者(或账户所有者已委派权限的AWS账户才能对Amazon SQS消息队列执行操作).
为了使用SQS,我能想到的一种方法是创建一个面向公众的EC2实例,它接收消息并传递给SQS.
我的问题是:
安全组“显示 UDP 端口已打开”,但应拒绝连接。
我有一个实例 vpn2-a
vpn2-a i-xxxxxxxxx 11.11.11.11
Run Code Online (Sandbox Code Playgroud)
我想限制对该实例的 UDP 端口 1194 的访问,以接受来自以下私有 IP 地址的连接:
55.55.55.55/32, 66.66.66.66/32
Run Code Online (Sandbox Code Playgroud)
我已创建 SG 并附加到实例 vpn2-a
vpn_1_2-vpn12-security-group
1194 udp 55.55.55.55/32, 66.66.66.66/32
Run Code Online (Sandbox Code Playgroud)
1. 测试是否正常:
我确实从允许的vpn1-a 55.55.55.55执行一些“端口打开”测试
vpn1-a$ $ nc -vv 11.11.11.11 1194 -u
Connection to 11.11.11.11 1194 port [udp/openvpn] succeeded!
Run Code Online (Sandbox Code Playgroud)
太好了,现在让我们看看该端口是否被随机 IP阻止:
RANDOM_HOST$ nc -vv 11.11.11.11 1194 -u
Connection to 11.11.11.11 1194 port [udp/openvpn] succeeded!
Run Code Online (Sandbox Code Playgroud)
^^ 怎么办????估计是被拒绝了!!!请解释一下
2、调试:
这让我很困惑,但我确实做了一些测试:
在 vpn2-a 实例中:
vpn2-a# /etc/init.d/openvpn stop
Run Code Online (Sandbox Code Playgroud)
如您所见 - 端口 1194 上没有任何内容正在侦听
vpn2-a## netstat …Run Code Online (Sandbox Code Playgroud) boto3 ×7
python ×5
amazon-s3 ×3
amazon-ec2 ×1
amazon-rds ×1
amazon-sqs ×1
aws-cli ×1
aws-lambda ×1
botocore ×1
encryption ×1
flask ×1
instance ×1
java ×1
messaging ×1
port ×1
python-3.x ×1
s3-bucket ×1
spring ×1
ubuntu ×1
udp ×1