我的目标是拥有一个简单的工具,可以仅通过aws cli或更少的第三方将 dynamodb 导出到本地文件(json/csv)。我的表大小约为 500mb。
我正在进行几天的研究,我看到了非常好的项目,例如dynamodump另一个 SDK 实现。我还测试了Datapipeline来自亚马逊的,但对于我目标的任务想要简单的aws cli.
假设我已经有表的映射,例如索引和属性。现在我只想导入我拥有的项目。对我来说,最好的实施解决方案是这样的:
将表从 aws 导出到本地文件:
aws dynamodb scan --table-name SOMETABLENAME --output json | jq '.Items[]' > SOMETABLENAME.json
sed使用、jq、awk...等内容渲染文件。要获得可以导入到 aws-dynamodb 的正确 json 格式
使用以下命令将项目从 SOMETABLENAME 导入到 aws-dynamodb:
aws dynamodb put-item --table-name SOMETABLENAME --item file://SOMETABLENAME.json
PersistentVolumeClaim我正在尝试使用kubernetes-plugin来保留我的工作区
我已经创建了文件PV并将PVC其存储在本地磁盘上。该管道以前运行良好,但现在不再在本地磁盘上创建工作区。
这是我的管道。知道为什么不起作用吗?
def podTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven
command:
- sleep
args:
- infinity
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
workingDir: "/home/jenkins/agent"
volumes:
- name: "workspace-volume"
persistentVolumeClaim:
claimName: "jenkins-slave-pvc"
readOnly: false
"""
pipeline {
agent none
stages {
stage ('maven') {
agent {
kubernetes {
yaml podTemplate
defaultContainer 'maven'
}
}
stages {
stage('Nested 1') {
steps {
sh "touch Nested1 && mvn …Run Code Online (Sandbox Code Playgroud) jenkins kubernetes jenkins-pipeline jenkins-declarative-pipeline jenkins-kubernetes
我想使用 ssh-add 加载受变量密码保护的 ssh 密钥。
当我尝试从文件加载它时,效果很好。
eval $(ssh-agent)
DISPLAY=1 SSH_ASKPASS="passwordfile" ssh-add id_rsa < /dev/null
现在我想将密码和 id_rsa 分配给变量并使用如下内容:
eval $(ssh-agent)
DISPLAY=1 SSH_ASKPASS="$PASSPHRASE" ssh-add $ID_RSA < /dev/null
我怎样才能实现这个目标?
我试图在元数据中查找安全组 ID,但只有该组的名称。
\n\n得到的名字是curl这样的:
\xef\xbb\xbf\xef\xbb\xbfcurl http://169.254.169.254/latest/meta-data/security-groups/\nRun Code Online (Sandbox Code Playgroud)\n\n结果
\n\nsome-secgroup-name\nRun Code Online (Sandbox Code Playgroud)\n\n我需要这样的 IDsg-1234567911
知道如何在元数据中查找(没有 CLI)吗?
\n我们有一项工作,在构建过程中在工作区文件夹中生成一些 html 文件。我们的目标是在构建完成后获取这些文件并对其进行压缩。
该工作的第一步是清理工作区 - 确保不存在以前版本中的文件。
当我们开始构建并且有人开始单独的构建时,我们的问题就出现了 - 工作区被擦除。两个构建都会生成这些 html,并且内容会从不同的构建中混合起来。
如果有人知道如何将每个构建分开以拥有自己的工作空间,将会很高兴分享它。我希望这仅适用于一份工作。其他工作必须保留在共享工作空间中。
我在为 Jenkins 使用kubernetes-plugin时尝试使用标签,但我有点困惑。在我的pipeline下面,我尝试parallel使用不同的标签(代理)分步骤构建测试作业。
我已经在 Jenkins 配置中使用 pod 模板和容器配置了插件,其中我使用与podTemplate定义的管道中相同的设置。
问题是,当我agent label在第 2 阶段使用时,运行的是 jnpl 映像,而不是我在 config 中指向的映像someimage:latest。
在stage 1我在管道中定义 pod 的地方没有问题,并且所需的图像运行良好。
我做错了什么?
这是我在 Jenkins 中的kubernetes 插件jenkinsfile的配置:
def podTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: k8s
image: someimage:latest
command:
- sleep
args:
- infinity
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
workingDir: "/home/jenkins/agent"
volumes:
- name: "workspace-volume"
persistentVolumeClaim:
claimName: "jenkins-worker-pvc" …Run Code Online (Sandbox Code Playgroud) jenkins jenkins-plugins kubernetes jenkins-pipeline kubernetes-jenkins-plugin
jenkins ×3
kubernetes ×2
amazon-ec2 ×1
aws-cli ×1
jenkins-declarative-pipeline ×1
metadata ×1
ssh ×1
ssh-agent ×1
ssh-keys ×1