小编vis*_*l.k的帖子

python boto3参数验证错误

这里我写了一个python程序来启动一个符合所有条件的实例。但执行程序时出现以下错误。botocore.exceptions.ParamValidationError: Parameter validation failed: Invalid type for parameter InstanceIds, value: i-012345678, type: <type 'str'>, valid types: <type 'list'>, <type 'tuple'>.下面是我的代码:

import boto3
ec2=boto3.client('ec2',region_name='ap-south-1')
a=ec2.describe_instances()
for i in a['Reservations']:
    for x in i['Instances']:
       if x['InstanceId']=="i-12345678" and x['State'['Name']=='stopped':
            n = x['InstanceId']
            ec2.start_instances(InstanceIds=n)`
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services boto3

10
推荐指数
1
解决办法
7万
查看次数

如何使用python boto3将s3对象从一个桶复制到另一个桶

我想将文件从一个s3存储桶复制到另一个存储桶.我收到以下错误:

s3.meta.client.copy(source,dest)
TypeError:copy()至少需要4个参数(给定3个)

我无法通过阅读文档找到解决方案.这是我的代码:

#!/usr/bin/env python
import boto3
s3 = boto3.resource('s3')
source= { 'Bucket' : 'bucketname1','Key':'objectname'}
dest ={ 'Bucket' : 'Bucketname2','Key':'backupfile'}
s3.meta.client.copy(source,dest)
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3

9
推荐指数
3
解决办法
3万
查看次数

如何使用kms加密从aws cli上传文件到s3

我想通过kms加密将文件从本地机器上传到s3.我一直在使用以下命令:

    aws s3 cp /filepath s3://mybucket/filename --sse-kms-key-id <key id>
Run Code Online (Sandbox Code Playgroud)

它显示以下错误" 发生错误:调用PutObject操作时:使用AWS KMS托管密钥进行服务器端加密需要HTTP标头x-amz -server-side-encryption:aws:kms" 可能导致此错误的原因是什么?

encryption amazon-s3 amazon-web-services

8
推荐指数
1
解决办法
9272
查看次数

boto3 过滤器中的“或”条件

有没有办法在 boto3 中的 2 个过滤器之间指定“或”条件?例如,我正在使用以下 EC2 服务调用:

ec2.snapshots.filter(
        Filters=[
            {
                'Name': 'tag-key',
                'Values': ['SomethingMeaningfull']
            },
            {
                'Name': 'tag:Name',
                'Values': ['OtherMeaningfullThibg']
            },
        ],
        DryRun=False)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,过滤器被评估为“AND”条件,但我希望将其评估为“OR”。这是你可以用 boto3 实现的吗?

amazon-ec2 amazon-web-services boto3

5
推荐指数
1
解决办法
2223
查看次数

如何将角色与服务帐户绑定 - Kubernetes

我知道有很多类似的问题,但据我浏览,没有一个有解决方案。谈到这个问题,我创建了一个服务帐户(使用命令)、角色(使用 .yaml 文件)、角色绑定(使用 .yaml 文件)。该角色仅授予对 Pod 的访问权限。但是,当我使用角色所附加的 SA 登录仪表板(令牌方法)时,我可以不受任何限制地查看所有资源。这是我使用的文件和命令。

角色.yaml:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: assembly-prod
  name: testreadrole
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
Run Code Online (Sandbox Code Playgroud)

角色绑定.yaml

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: testrolebinding
  namespace: assembly-prod
subjects:
- kind: ServiceAccount
  name: testsa
  apiGroup: ""
roleRef:
  kind: Role
  name: testreadrole
  apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)

用于创建服务帐户的命令: kubectl create serviceaccount <saname> --namespace <namespacename>

更新:我创建了一个服务帐户,但没有为其附加任何类型的角色。当我尝试使用此 SA 登录时,它让我通过,并且我能够执行各种活动,包括删除“秘密”。因此,默认情况下所有 SA 都假定管理员访问权限,这就是我上述角色不起作用的原因。这种行为是否符合预期,如果是,那么我该如何改变它?

dashboard rbac kubernetes

5
推荐指数
2
解决办法
9411
查看次数

从 STEP 文件中提取体积

我的目标是编写一个 Python 程序来提取文件中对象的体积STEP。我发现steputilsaoxchange是 Python 中存在的两个库,但它们似乎都没有包含足够的有关从文件中提取卷/属性的文档。有没有可用的文件可以解释这一点?我尝试了类似的文件用例STL,并能够使用numpy-stl成功实现它。我正在寻找像 numpy-stl 这样的STEP文件。下面是我如何实现文件的示例代码STL

import numpy
from stl import mesh
your_mesh = mesh.Mesh.from_file('/path/to/myfile.stl')
volume, cog, inertia = your_mesh.get_mass_properties()
print("Volume = {0}".format(volume))
Run Code Online (Sandbox Code Playgroud)

python step python-3.x

5
推荐指数
1
解决办法
7417
查看次数

python(boto3)程序删除aws中的旧快照

我已经写了一个删除旧快照的程序,但是对我来说现在的问题是如果快照附有一个ami,那么它不会被删除并且程序也会停止,并显示以下消息:

botocore.exceptions.ClientError:调用DeleteSnapshot操作时发生错误(InvalidSnapshot.InUse):ami-12345当前正在使用快照snap-12345678

我希望程序仅跳过那些快照,然后继续删除其他快照。这是我的代码如下:

import boto3
import datetime
client = boto3.client('ec2',region_name='us-west-1')
snapshots = client.describe_snapshots(OwnerIds=['12345678'])
for snapshot in snapshots['Snapshots']:
    a= snapshot['StartTime']
    b=a.date()
    c=datetime.datetime.now().date()
    d=c-b
    if d.days>10:
        id = snapshot['SnapshotId']
        client.delete_snapshot(SnapshotId=id)
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services boto3 aws-lambda

4
推荐指数
1
解决办法
4345
查看次数

如何在 boto 程序中指定 aws 区域?

我想ec2使用 boto 模块列出aws 帐户中的实例。我遇到的问题是

“您必须指定一个区域”。这是程序。

import boto3
ec2 = boto3.resource('ec2')
for instance in ec2.instances.all()
print instance.id, instance.state
Run Code Online (Sandbox Code Playgroud)

我没有指定任何默认区域。如何以编程方式指定它?

amazon-web-services python-3.x boto3

2
推荐指数
2
解决办法
5405
查看次数

Terraform-Azure-无法为应用程序网关 StandardV2 创建专用 IP 配置

我正在尝试创建一个具有公共 IP 和私有 IP 配置的应用程序网关(标准 V2),但在创建时仅创建公共 IP,而找不到私有 IP 配置。我在我的 terraform 代码中根本没有看到任何错误。我不确定我在哪里遗漏了东西。下面是我的地形代码。

provider "azurerm" {
  version = "=1.44"
}
provider "null" {
  version = "=2.1"
}

resource "azurerm_public_ip" "appgwip" {
  name                = "appgwtestpip"
  location            = "Southeast Asia"
  resource_group_name = "myrgname"
  allocation_method   = "Static"
  sku  = "Standard"
}

resource "azurerm_application_gateway" "appgw" {
    depends_on  = [azurerm_public_ip.appgwip]
    name = "testappgw-sea"
    resource_group_name = "myrgname"
    location  = "Southeast Asia"
    sku {
        name = "Standard_v2"
        tier = "Standard_v2"
        capacity = 2
    }
    gateway_ip_configuration {
        name = "APPGW-IPCONFIG-test" …
Run Code Online (Sandbox Code Playgroud)

azure terraform azure-application-gateway terraform-provider-azure

2
推荐指数
1
解决办法
4324
查看次数

无法使用 kustomize 删除“Sizelimit”属性

我的模板基本文件中sizeLimit的属性emptyDir设置为 2Gi。我想删除sizelimit并只拥有emptyDir: {}. 我无法使用 Kustomization 覆盖来实现这一点。我将在下面详细介绍我的文件夹结构和 kustomization yaml。

\n

文件夹结构:

\n
application\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 majorbase\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 web-template.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 minorbase\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myoverlays\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my-new-web.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

该文件夹myoverlays的 kustomization.yaml 文件中包含以下内容

\n
bases:\n- ../minorbase\npatchesStrategicMerge:\n- resources/my-new-web.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

该文件夹minorbase的 kustomization.yaml 文件中包含以下内容

\n
bases:\n- ../majorbase\n
Run Code Online (Sandbox Code Playgroud)\n

该文件夹majorbase的 kustomization.yaml 文件中包含以下内容

\n
resources:\n- resources/web-template.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

我想要编辑的部分在主要库/模板中看起来像这样。

\n
volumes:\n      - name: test-vol\n        emptyDir:\n          sizeLimit: "2Gi"\n
Run Code Online (Sandbox Code Playgroud)\n

上述配置需要使用覆盖层进行更新,如下所示。

\n …

kubernetes kustomize

2
推荐指数
1
解决办法
5461
查看次数