我正在使用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)
resource "aws_iam_policy" "access_policy" {
name = "github_policy"
policy = <<EOF
{ …
Run Code Online (Sandbox Code Playgroud) 我正在将 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) 我有一个用于 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/ 文件夹名称。 …
我正在尝试使用 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) 我在为 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) 我正在编写一个简短的脚本,我计划获取有关主机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解析为浮点数所以我这样做了.任何想法可能出错?
我有一个脚本,它随机选择一个随机数形式的可用列表。我一直在 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)
我怎么一直收到这个错误?这里可能有什么问题?
我的任务是创建一个 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)
有任何想法吗?