小编tan*_*nvi的帖子

通过用于远程启动类型任务的云形成为云计算事件规则创建"目标"

我正在尝试在我的CloudFormation模板中创建一个具有以下EcsParameters的计划任务(CloudWatch Events Rule):

EcsParameters:
        LaunchType: FARGATE
        NetworkConfiguration: 
          AwsVpcConfiguration:
            AssignPublicIp: !Ref PublicIpAssignment
            SecurityGroups:
              - !Ref EcsSecurityGroups
            Subnets:
              - !Ref SubnetName
        TaskCount: 1
        TaskDefinitionArn: !Ref TaskDefinitionOne
Run Code Online (Sandbox Code Playgroud)

我的ECS CLuster是在Fargate而不是EC2上启动的,我没有运行服务(用例不需要长时间运行的过程,直接从事件规则中调度任务.)

每当我运行此模板(使用LaunchTypeNetworkConfiguration)时,堆栈创建失败,出现此错误:

遇到不受支持的属性NetworkConfiguration


作为替代方案,我还尝试从AWS CLI启动计划任务,但似乎网络配置和启动类型选项也不可用:

参数验证失败:Targets [0]中的未知参数.EcsParameters:"LaunchType"必须是以下之一:TaskDefinitionArn,TaskCount


根据此页面上的AWS文档本身,我应该能够指定LaunchTypeNetworkConfiguration在我EcsParameters的部分TargetsProperties的的AWS::Events::Rule资源.

有什么我可以尝试的可行吗?

amazon-web-services amazon-ecs aws-fargate

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

Chrome 扩展程序:如何向网站上的页面添加按钮并为其添加点击处理程序?

我正在尝试使用 Chrome 扩展程序向第三方网站上的页面动态添加一个按钮,并为该按钮添加一个点击处理程序。我已经阅读了Chrome 扩展程序中的onClick 不起作用,在单独的js文件中添加了处理程序。

问题在于 Chrome 试图js在网络服务器中而不是在扩展程序中找到该文件。所以,404 发生了。

假设网页是“ http://www.somecompany.com/somepage.html ”。我的扩展代码如下。

    var aButton = document.createElement('button');
    aButton.id = "aButton";
    thatDiv.appendChild(aButton);

    var aScript = document.createElement("script");
    aScript.src="aButtonHandler.js";
    thatDiv.appendChild(aScript);   
Run Code Online (Sandbox Code Playgroud)

Chrome 尝试加载“ http://www.somecompany.com/aButtonHandler.js ”,当然真正的网站没有那个脚本,所以 404 发生了。如何向网站添加按钮并alert("hello");在单击该按钮时执行?


添加

我将代码添加aButtonHandler.js到内容脚本本身的末尾,但什么也没发生。怎么了?

内容脚本.js

addButton();

function addButton()
{
    //adds a button by the code above.
}

document.addEventListener('DOMContentLoaded', function() {
    var theButton = document.getElementById('aButton');
    theButton.addEventListener('click', function() {
        alert('damn');
    });
});
Run Code Online (Sandbox Code Playgroud)

添加

这奏效了。

内容脚本.js

addButton();

function addButton()
{
    //adds …
Run Code Online (Sandbox Code Playgroud)

javascript onclick google-chrome-extension

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

从ECS Docker容器写入cloudwatch时缺少日志行

(在将所有日志打印到CloudWatch Logs之前退出AWS-ECS上的Docker容器)为什么CloudWatch Logs组的某些流不完整(即Fargate Docker Container成功退出,但日志突然停止更新)?间歇地在几乎所有日志组中看到此消息,但并不是在每个日志流/任务运行时都看到这一点。我正在1.3.0版上运行


说明:
A Dockerfile使用该CMD命令运行node.js或Python脚本。

这些不是服务器/长时间运行的进程,我的用例要求容器在任务完成时退出。

样本Dockerfile:

FROM node:6
WORKDIR /path/to/app/
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "run-this-script.js" ]
Run Code Online (Sandbox Code Playgroud)


当使用本地在终端上运行此命令时,所有日志都会正确打印到终端的stdout / stderr中docker run
要将其作为Fargate上的ECS任务运行,请awslogs从CloudFormation模板设置日志驱动程序为。

...
LogConfiguration:
   LogDriver: 'awslogs'
     Options:
        awslogs-group: !Sub '/ecs/ecs-tasks-${TaskName}'
        awslogs-region: !Ref AWS::Region
        awslogs-stream-prefix: ecs
...
Run Code Online (Sandbox Code Playgroud)

看到cloduwatch日志输出有时不完整,我进行了测试并检查了CW Logs Limits中的每个限制,并且确定问题不存在。
我最初以为这是节点js在console.log()刷新之前异步退出的问题,或者进程退出得太早了,但是当我也使用另一种语言时,也会出现相同的问题-这使我相信这与代码,而是专门使用cloudwatch。
通过添加一个睡眠计时器在代码中引起延迟对我没有用

有可能由于docker容器在任务完成后立即退出,因此日志没有足够的时间写到CWLogs,但是必须有一种方法来确保不会发生这种情况?

样本日志:流不完整:

{ "message": "configs to run", "data": {"dailyConfigs":"filename.json"]}}
running for filename
Run Code Online (Sandbox Code Playgroud)

完成的日志流:

{ "message": "configs …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs docker amazon-cloudwatchlogs docker-container

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

如果汇编程序中的CALLed代码块中没有return语句,该怎么办?

如果我说'打电话'而不是跳?会怎么样?由于没有写入返回语句,控制权只是转移到下面的下一行,还是在调用后仍然返回到该行?

start:
     mov $0, %eax
     jmp two
one:
     mov $1, %eax
two:
     cmp %eax, $1
     call one
     mov $10, %eax
Run Code Online (Sandbox Code Playgroud)

x86 assembly

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

AWS CLI与控制台和CloudFormation堆栈

通过CLI在AWS上创建资源是否存在任何已知的弊端?使用一种方法比另一种方法更可靠/更容易/容易出错/被广泛接受/建议吗?设置重复脚本时,是否有理由为什么我要通过AWS CLI使用CloudFormation或AWS控制台直接运行命令?

例如,如果我要创建ECS Fargate任务定义,我是否有任何理由要通过AWS CLI使用AWS CloudFormation或控制台?Cli语法简单易用,并且有些事情(例如专门为Fargate任务设置事件规则/目标)尚未通过cloudformation支持。

amazon-web-services aws-cloudformation aws-cli aws-sdk

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