小编dav*_*idb的帖子

Terraform Fargate任务定义请求执行角色

我正在使用Terraform在AWS中创建一些服务.其中一项服务是ECS任务定义.我按照文档操作,并不断收到以下错误:

aws_ecs_task_definition.github-backup: ClientException: Fargate requires task definition to have execution role ARN to support ECR images.
status code: 400, request id: 84df70ec-94b4-11e8-b116-97f92c6f483f
Run Code Online (Sandbox Code Playgroud)

首先task_role_arn是可选的,我可以看到创建了一个新角色.我还尝试使用任务定义所需的权限创建一个角色.

这就是我所拥有的:

任务定义:

resource "aws_ecs_task_definition" "github-backup" {
  family                   = "${var.task_name}"
  requires_compatibilities = ["FARGATE"]
  network_mode             = "awsvpc"
  cpu                      = "${var.fargate_cpu}"
  memory                   = "${var.fargate_memory}"
  task_role_arn            = "${aws_iam_role.github-role.arn}"

  container_definitions = <<DEFINITION
[
    {
        "cpu": ${var.fargate_cpu},
        "image": "${var.image}",
        "memory": ${var.fargate_memory},
        "name": "github-backup",
        "networkMode": "awsvpc"
    }
]
DEFINITION
}
Run Code Online (Sandbox Code Playgroud)

IAM政策:

resource "aws_iam_policy" "access_policy" {
  name = "github_policy"

  policy = <<EOF
{ …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs terraform

14
推荐指数
1
解决办法
5449
查看次数

Terraform 错误刷新状态访问被拒绝

我正在将 gitbucket 用于我的存储库和管道。我有一个配置了远程状态的 terraform 配置文件,它在我的本地机器上运行良好,但是在 gitbucket 中运行时失败。我不断收到拒绝访问错误。这是main.tf:

terraform {
backend "s3" {
    bucket = "zego-terraform-test"
    key    = "test/terraform.tfstate"
    region = "eu-west-1"
  }
}

data "terraform_remote_state" "remote_state" {
  backend = "s3"

  config {
    bucket = "zego-terraform-test"
    key    = "test/terraform.tfstate"
    region = "eu-west-1"
  }
}

variable "region" {}

provider "aws" {
  region     = "${var.region}"
  access_key = {}
  secret_key = {}
  token      = {}
}

module "vpc" {
  source = "./modules/vpc"
}
Run Code Online (Sandbox Code Playgroud)

这是我的 gitbucket-pipelines.yml:

image: python:3.5.1
pipelines:
  default:
    - step:
        caches:
          - pip …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 terraform gitbucket bitbucket-pipelines

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

Docker 撰写更改后不更新图像

我有一个用于 docker compose 的 yml 文件来创建两个容器并连接它们。我今天对代码进行了一些更改(替换了要添加到其中一个 docker 文件中的文件夹)。这是 yml 文件:

version: '3'
services:
  web:
    build: ./web
    ports:
     - "8000:8000"
    restart: always
    volumes:
     - web:/www

  nginx:
    build: ./nginx
    ports:
     - "80:80"
    restart: always
    links:
     - web
    volumes:
     - web:/www
volumes:
    web:
Run Code Online (Sandbox Code Playgroud)

我所做的更改是对 ./web 中的 dockerfile:

FROM python:3.6.4

RUN mkdir /www
WORKDIR /www
ADD . /www/
RUN pip install -r requirements.txt
EXPOSE 8000
CMD python /www/davidbien/manage.py migrate
CMD cd dockertest && gunicorn dockertest.wsgi:application -w 2 -b :8000
Run Code Online (Sandbox Code Playgroud)

我所做的更改是更改 dockertest 文件夹中的 /davidbien/ 文件夹名称。 …

yaml docker docker-compose

6
推荐指数
1
解决办法
4813
查看次数

Boto3 不将 zip 文件上传到 S3 python

我正在尝试使用 boto3 for python 将 .zip 文件上传到 S3,但我目录中的 .zip 文件未正确上传。该代码下载给定用户的所有电子邮件,将它们压缩到同一目录中,然后将它们上传到 S3 存储桶。问题是上传的文件不是我打算上传的文件。相反,只会出现一个 18kb 的文件。

这是代码:

import sys
import imaplib
import getpass
import email
import shutil
import boto3
import os

username = input("Enter user's first name: ")
surname = input("Enter user's surname: ")
email_address = username + "." + surname + "@gmail.com"
password = getpass.getpass()
directory = username + surname + '/'
def download_emails(server):
    result, data = server.uid('search', None, "ALL")    #search all email and return their uids
    if result == 'OK': …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 boto3

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

kubernetes 集群中 django 应用程序的 Nginx 配置

我在为 kubernetes 中部署的 django 应用程序创建 nginx 配置文件时遇到困难。Nginx 和 app 是同一个集群中的两个独立容器。据我所知,容器可以通过 127.0.0.1:XX 和主机名相互通信。我正在为此使用 minikube。我的应用程序容器是从这个文件构建的:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: website
  labels:
    name: website
spec:
  template:
    metadata:
      labels:
        name: website
    spec:
      containers:
        - name: website
          image: killabien/web
          ports:
            - containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
  name: website
  labels:
    name: website
spec:
  type: LoadBalancer
  ports:
    - port: 8000
      targetPort: 8000
  selector:
    name: website
Run Code Online (Sandbox Code Playgroud)

和 nginx 从这个:

apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  ports:
    - protocol: TCP
      port: 80 …
Run Code Online (Sandbox Code Playgroud)

django nginx kubernetes

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

Python不支持操作数类型+:'float'和'str

我正在编写一个简短的脚本,我计划获取有关主机PC的一些信息并将其写入excel工作簿.我还在学习东西,所以没什么特别的.我得到了我需要的所有数据,可以写入大部分内容.我似乎无法让一件事工作.尝试以下代码时:

hardwareSheet.write("B7", usage + "%")
Run Code Online (Sandbox Code Playgroud)

我只能打印出"使用"变量但是当我添加+"%"时,我不断收到以下错误:

TypeError: unsupported operand type(s) for +: 'float' and 'str'
Run Code Online (Sandbox Code Playgroud)

我正在使用xlsxwriter库来创建和编写excel.hardwareSheet.write是一个允许我将数据写入名为hardware的表单的命令.这是我得到"使用"变量的方式:

cpuInfo = wmi.Win32_Processor()[0]
usage = float(cpuInfo.LoadPercentage)
Run Code Online (Sandbox Code Playgroud)

如果我没有将cpuInfo.LoadPercentage解析为float,那么它将是一个字符串.我用Google搜索并读取我需要将str解析为浮点数所以我这样做了.任何想法可能出错?

python excel wmi

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

Python 模块 random 没有在本地服务器上工作但在实时服务器上没有的属性选择

我有一个脚本,它随机选择一个随机数形式的可用列表。我一直在 django 的本地服务器上对其进行测试,并且运行良好,但是当我将其移动到实时服务器时,我不断收到此错误:

AttributeError: 'module' object has no attribute 'choices'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import random

class singlePull(TemplateView):
template_name = 'gacha/singlepull.html'

def randomStar(self):
    choice = [5,4,3]
    probability = [0.1, 0.2, 0.7]
    star = random.choices(choice, probability)
    return star


def post(self, request):
    result = self.randomStar()
    for key in result:
        character = Characters.objects.filter(stars=key).order_by('?')[:1]
        for obj in character:
            name = obj.name
            stars = obj.stars
            series = obj.series
            image = obj.image
    return JsonResponse({'name': name, 'stars': stars, 'series': series, 'image': image}, safe=False)
Run Code Online (Sandbox Code Playgroud)

我怎么一直收到这个错误?这里可能有什么问题?

python random django

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

气流从数据库中获取数据并打印出来

我的任务是创建一个 POC,人们可以在其中从数据库中获取数据、处理它并将其发送到 S3。我仍在学习 Airflow,有些事情我还没有完全理解。我希望你能帮助我。所以我现在正在尝试从 mysql db 中获取数据并将其打印出来。问题是我总是得到“无”返回。我正在尝试使用 xcom 但它不起作用,我读到我不应该为此使用 xcom。这是我现在所拥有的:

def print_query():
query = ti.xcom_pull(task_ids='mysql_query')
print(query)

default_args = {
    'owner': 'me',
    'start_date': dt.datetime(2019, 8, 15),
    'retries': 1,
    'retry_delay': dt.timedelta(minutes=5),
}

dag = DAG('s3_dag_test', default_args=default_args)

python = PythonOperator(
    task_id='print',
    provide_context=True,
    python_callable=print_query,
    dag=dag)

query = MySqlOperator(
    task_id='mysql_query',
    sql='SELECT * FROM sakila.actor',
    mysql_conn_id='mysql_db',
    dag=dag)

query >> python
Run Code Online (Sandbox Code Playgroud)

第一个任务运行良好(mysql_query),但是第二个任务失败,因为我没有。怎么了?

另外,我得到的实际错误是这样的:

ERROR - print_query() got an unexpected keyword argument 'dag'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

airflow apache-airflow-xcom

0
推荐指数
1
解决办法
1703
查看次数