小编cha*_*198的帖子

如何使用 fargate 监控 ecs 集群的磁盘空间/文件系统使用情况

我使用 Fargate 创建了 2 个任务和一个 ECS 集群,该集群在 2 个不同的服务中使用这 2 个任务。所以简而言之,一个集群:2 个服务,每个服务都链接到它们自己的任务,这些任务链接到 ECR 存储库。根据 AWS ECS Fargate 任务存储概念,每个任务都有 10gb 的 docker 层存储和额外的 4gb 卷安装。所以我想监控容器消耗的文件系统存储。我在想是否有人可以指出我如何将另一个 docker sidecar 附加到一个任务,该任务将监视该任务创建的容器的存储消耗并将其发送到云监视?每个任务定义都没有任何挂载点。即使任务重新启动并创建新实例,这也应该适用,但即使重新启动,我也不想保留数据。

storage amazon-ecs docker aws-fargate

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

AWS S3 上的静态 Web 托管给我“403 权限被拒绝”

如果有人能指出我做错的地方,我将不胜感激。看下面的步骤

  1. 我在 route53 中有一个域名。

  2. 根据域名,我创建了一个存储桶名称(为了我的问题,让我们坚持使用存储桶和域名作为 abc.nl)

  3. 创建存储桶,不更改任何默认提供的检查列表。
  4. 单击存储桶(abc.nl)并在“存储桶策略”下方添加
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1234567:user/usrname"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::abc.nl/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)
  1. 我已经提供了我usernameAmazonS3FullAccessIAM政策。
  2. 我的阻止公共访问(帐户设置)也没有改变。 阻止公共访问(帐户设置)
  3. 现在我将所有静态文件上传到存储桶(abc.nl)。
  4. 在属性选项卡中,我index.htmlstatic website hosting块下添加了。

现在,根据手册,我应该能够单击链接并访问该页面。但出于某种原因,它向我抛出了 403 访问禁止错误。

根据我的理解,只需添加bucket policy您就可以打开公共访问。但对我来说,我没有看到“公共”标签。所以,不知道怎么回事。(我的理解可能是错误的,因此这篇文章。)

如果您想知道哪个手册,我正在关注https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html how to host static web site

无论如何,有人指出我哪里做错了,我应该从存储桶的权限中选择哪些选项?我可能会错过一些台词。

PS:我已经多次创建和删除同一个桶,只是为了每次都重新开始。

web-hosting amazon-s3 amazon-web-services

8
推荐指数
3
解决办法
5915
查看次数

moto 在本地测试 aws sts

我想在本地使用 moto 测试我的 sts 设置。

get_aws_temp_credentials.py

import boto3
from botocore.exceptions import ClientError


def assume_role(aws_arn=None, aws_session_name=None):
    if aws_arn is not None and aws_session_name is not None:
        try:
            local_session_name = aws_session_name[:64]
            client = boto3.client('sts', region_name=Constants.pubAwsRegion)
            response = client.assume_role(RoleArn=aws_arn,
                                          RoleSessionName=local_session_name,
                                          DurationSeconds=900)

            return response
        except ClientError as error:
            logger.info({"message": "get_aws_temp_credentails.py: Can not assume Role"})
            return 25


if __name__ == '__main__':
    assume_role()
Run Code Online (Sandbox Code Playgroud)

test_assume_role.py :

import os
import pytest
from moto import mock_sts


@pytest.fixture
def aws_credentials():
    """Mocked AWS Credentials for moto."""
    os.environ['AWS_ACCESS_KEY_ID'] = 'testing'
    os.environ['AWS_SECRET_ACCESS_KEY'] = …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services moto

7
推荐指数
0
解决办法
2583
查看次数

执行 terraform 时出现 Terraform 错误消息:与插件不兼容的 API 版本。插件版本:4,客户端版本:[5]

terraform plan -var-file=xx 给我

无法实例化提供程序“aws”以获取架构:与插件不兼容的 API 版本。插件版本:4,客户端版本:[5]

terraform init 没有任何问题。

Initializing the backend...

Initializing provider plugins...

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to …
Run Code Online (Sandbox Code Playgroud)

api incompatibletypeerror terraform-provider-aws

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

docker-compose 的 Python 子进程

我有一组有趣的要求,我正在尝试使用 Python 子进程模块和 docker-compose 来执行这些要求。整个设置可以在一个 docker-compose 中完成,但由于要求,这就是我想要设置的:

  1. 使用 python 子进程调用 docker-compose 来激活测试服务器
  2. 打印上面 docker-compose 运行的所有标准输出。
  3. 一旦测试服务器通过 docker-compose 启动并运行;调用该服务器的测试脚本。

这是我的 docker-compose.py 的样子:

import subprocess
from subprocess import PIPE
import os
from datetime import datetime

class MyLog:
    def my_log(self, message):
        date_now = datetime.today().strftime('%d-%m-%Y %H:%M:%S')
        print("{0} ||  {1}".format(date_now, message))


class DockercomposeRun:
    log = MyLog()

    def __init__(self):
        dir_name, _ = os.path.split(os.path.abspath(__file__))
        self.dirname = dir_name

    def run_docker_compose(self, filename):
        command_name = ["docker-compose", "-f", self.dirname + filename, "up"]
        popen = subprocess.Popen(command_name, stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
        return popen …
Run Code Online (Sandbox Code Playgroud)

python-3.x docker-compose

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

如何检查 docker 镜像是基于哪个版本构建的

我在 Artifactory 中有一个 docker 镜像。如何查看“基础镜像版本是”?

例如,我的 dockerimage 在基于 docker 文件创建的神器中,如下所示

FROM test-image:v1.0.0
...
Run Code Online (Sandbox Code Playgroud)

现在构建完成后,我如何才能找到该图像是构建于v1.0.0

我尝试docker inspect <imagename>这样做并没有帮助我找到test-image. 我还能找到这个版本吗?

docker

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

检查/了解 Azure Devops 中的构建是否由手动或 CI 触发的最佳方法

我有 2 个存储库,source对于target源代码,发布管道中有 2 个阶段。一个是构建调用的工件Dev,另一个是trigger=> 使用 api 调用触发存储库的构建管道target。两个存储库都在同一个项目中。

可以target repo手动运行,无需连续 CI source-repo。现在我的问题是有没有可能弄清楚target-repo它是如何启动manuallyCI

阿兹多管道

azure azure-devops azure-pipelines

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

你可以通过fargate中的同一个容器将desiredcount缩小到0吗

我有一个 Fargate 服务,其中一个任务运行容器。因此,我的容器是一个定制的管道,它基于 SQS 计数运行。因此,如果所有记录都已处理,那么我会停止容器中的管道。那么,我想知道的是,我可以将服务的所需计数设置为 0,而不是停止管道吗?(该服务是该容器任务的父级)

amazon-web-services amazon-ecs aws-fargate

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

在可重用工作流程中“找不到‘action.yml’”

我有以下结构:

\n
.github\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workflows\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 send_alerts.yml\n
Run Code Online (Sandbox Code Playgroud)\n

现在主要是,我正在使用

\n
jobs:\n  main:\n    steps:\n      - name: Git Checkout\n        uses: actions/checkout@v3\n      - name: some job\n        run: |\n          ......\n  send_alerts:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: ./.github/workflows/send_alerts.yml@feature/workflow1\n        with:\n          provision_status: "Success"\n  \n
Run Code Online (Sandbox Code Playgroud)\n

在我的send_alerts.yml

\n
name: Creating and Sending Alerts/Status\non:\n  workflow_call:\n  \n    provision_status:\n      required: true\n      type: string\n\njobs:\n  create_send_alerts:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Git Checkout\n        uses: actions/checkout@v3\n      - name: Some other jobs\n        run: |\n        .....\n
Run Code Online (Sandbox Code Playgroud)\n

所以这让我犯了错误:

\n
Can't find …
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

如何从requirement.txt文件中选择特定版本

我有requirements.txt 文件,我在其中给出了自定义包名称和版本,如下所示,

custom-package >= 1.0.1
Run Code Online (Sandbox Code Playgroud)

现在在我的仓库中,我有如下版本

custom-package-1.0.1.tar.gz
custom-package-1.0.4.tar.gz
custom-package-5.0.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行 pip installrequirements.txt ,那么它会选择 5.0.0。这是可以理解的。但我如何确定它应该只选择以 1 开头的版本,而不是以 5 开头的版本。

python

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

如何在 CI/CD 中启动 localstack

我能够使用 localstack 在本地创建和测试 AWS。所以,我想知道是否有任何用例可以参考如何在 ci/cd 中添加 localstack 并运行您的测试用例?任何显示样本的指针将不胜感激。

localstack

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