我是一个Vim新手.我想将当前缓冲区的内容发送到外部命令的stdin(比方说邮件).我的最终目的是设置一个快捷方式,以便从当前的Vim缓冲区快速发送电子邮件.我猜这应该是一个微不足道的东西,但我找不到一种方法将Vim缓冲区发送到外部命令.提前致谢.
如何获取GNU的调用目标make Makefile?
例如,我make使用以下命令行调用:
make a-target
Run Code Online (Sandbox Code Playgroud)
如何在Makefile中获取调用目标"a-target"并将其分配给变量?
此外,如果在命令行上指定了多个目标:
make target1 target2 ...
Run Code Online (Sandbox Code Playgroud)
我如何获得所有这些?
我需要将vim中的一些选定文本作为参数值传递给curl命令.例如.我需要能够跑步
curl -sSd css="body { border-radius: 5px; }" http://prefixr.com/api/index.php
Run Code Online (Sandbox Code Playgroud)
来自vim.显然,"body {border-radius:5px;}"部分将是动态的.通常,在vim中选择视觉模式.
如何获取所选文本并将其作为卷曲参数传递?
我经常使用 Terraform 创建经典的负载均衡器。这些项目的 TF 输出应包括负载均衡器的(当前)IP 地址。为了实现这一点,我的代码中有以下内容:
data "dns_a_record_set" "lb_dns_a" {
host = "${aws_elb.myelb.dns_name}"
}
output "load_balancer_ip" {
value = "${data.dns_a_record_set.lb_dns_a.addrs}"
}
Run Code Online (Sandbox Code Playgroud)
这确实有效,除了最初创建 ELB 时。通常情况下,创建 ELB 和可解析其 DNS 名称之间存在相当大的延迟,因此我收到无法解析 DNS 名称的错误。几秒/分钟后,每个terraform refresh; terraform output;都会显示 ELB 的正确当前 IP 地址。我想我需要注入某种抑制计时器,以便在首次部署基础设施时为 DNS 记录提供可用时间。
我如何实现这样一个抑制计时器,以便创建 ELB,然后 TF 在创建之前等待(比如说)2 分钟data.dns_a_record_set.lb_dns_a?
最好的解决方案是等到名称成功解析后再继续。
PS:我只有ELB有这个问题。ALB 和 NLB 似乎更快,或者只是需要足够长的时间来创建侦听器和目标组,以便在创建输出时始终可以解析它们的 DNS 名称。
我将大量数据上传到我想要的 S3 存储桶,以便使用 Spark 和 Zeppelin 进行分析/可视化。然而,我仍然坚持从 S3 加载数据。
我做了一些阅读,以便将它们整合在一起,并免除我血腥的细节。我使用docker容器p7hb/docker-spark作为 Spark 安装,我从 S3 读取数据的基本测试来自这里:
我启动容器以及其中的主进程和从进程。我可以通过查看暴露在端口 8080 上的 Spark Master WebUI 来验证这项工作。此页面确实列出了工作人员并在标题“已完成的应用程序”下保留了我所有失败尝试的日志。所有这些都在状态中FINISHED。
我bash在该容器内打开一个并执行以下操作:
a)按照此处的建议导出环境变量AWS_ACCESS_KEY_ID和。AWS_SECRET_ACCESS_KEY
b) 开始spark-shell。为了访问 S3,似乎需要加载一些额外的包。在浏览 SE 时,我特别发现了这个,它教会了我,我可以使用该--packages参数来加载所述包。基本上我运行spark-shell --packages com.amazonaws:aws-java-sdk:1.7.15,org.apache.hadoop:hadoop-aws:2.7.5(, 对于版本的任意组合)。
c) 我运行以下代码
sc.hadoopConfiguration.set("fs.s3a.endpoint", "s3-eu-central-1.amazonaws.com")
sc.hadoopConfiguration.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
sc.hadoopConfiguration.set("com.amazonaws.services.s3.enableV4", "true")
val sonnets=sc.textFile("s3a://my-bucket/my.file")
val counts = sonnets.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
然后我收到各种不同的错误消息,具体取决于我在 2b) 中选择的版本。
我想 …
除其他外,我正在使用 绘制图matplotlib,我想立即将其存储为 S3 对象。
根据this和this other question以及精美手册中提供的答案,我需要S3.Object.put()将我的数据移动到AWS中,并且程序应该遵循
from matplotlib import pyplot as plt
import numpy as np
import boto3
import io
# plot something
fig, ax = plt.subplots()
x = np.linspace(0, 3*np.pi, 500)
a = ax.plot(x, np.sin(x**2))
# get image data, cf. /sf/answers/3156988691/
buf = io.BytesIO()
fig.savefig(buf, format="png")
buf.seek(0)
image = buf.read()
# put the image into S3
s3 = boto3.resource('s3', aws_access_key_id=awskey, aws_secret_access_key=awssecret)
s3.Object(mybucket, mykey).put(ACL='public-read', Body=image)
Run Code Online (Sandbox Code Playgroud)
但是,我最终得到了一个内容长度为零的新 S3 对象。
下面给了我一个内容长度为 6 …
随着 2019 年 1 月 Gitlab 11.7 的发布,我们为您的项目获得了新的关键功能发布版本。我想要准确显示该页面上的屏幕截图,并且我希望能够使用发布 API下载已编译的二进制文件。
我可以手动完成。当然,手动方法的说明可以在这里找到堆栈溢出。我需要帮助的问题是将其作为 CI/CD 管道的一部分进行处理,而人们可以轻松找到的答案并未涵盖该问题。
发行说明包含指向文档的链接,其中指出:
我们建议将此作为 CI/CD 发布管道中的最后一步之一。
由此我认为这是可能的。然而,我能想象的唯一方法是像我一样使用 GitLab API,当我手动创建版本时。当一个人想要访问 GitLab API 时,基本上有三种身份验证选项,根据精细手册:OAUTH2 令牌、个人访问令牌和会话 cookie。因此,我需要一种方法来在我的 CI/CD 管道中使用其中任何一个,并具有足够的特权。这个问题的解决方案是一个持续的讨论,有很多贡献,但近年来几乎没有实质性进展。
那么,作为 CI/CD 发布管道的最后一步之一,如何创建发布?
出于显而易见的原因,将带有 API 访问权限的个人访问密钥存储在 CI/CD 变量甚至存储库中的文件中都不是一种选择。
amazon-s3 ×2
external ×2
pipe ×2
vim ×2
amazon-elb ×1
apache-spark ×1
api ×1
boto3 ×1
curl ×1
gitlab ×1
gnu ×1
gnu-make ×1
io ×1
makefile ×1
matplotlib ×1
pipeline ×1
python-3.x ×1
terraform ×1