反正有没有只是要核对/删除AWS Parameters Store中的所有项目吗?
我找到的所有命令行都是一一删除它,或者在给定名称列表的情况下删除它。
我也尝试使用
#include<stdio.h>
#include<strings.h> // We include this library to manipulate text strings.
#include<ctype.h>
#define SIZE 100
int printFirstWord(char *pointer)
{
int i;
int length=strlen(pointer);
for(i=0; i<length; i++)
{
if(isalpha(pointer[i])!=0)
{
printf("%c",pointer[i]);
}
else if(isalpha(pointer[i])==0)
{
break;
}
}
return 0;
}
char *skipWords(char sentence[],int words)
{
int count=0,x,i;
int length=strlen(sentence);
char *pointer;
if(words==0)
{
pointer=&sentence[0];
}
else
{
for(i=0; i<length; i++)
{
if(isalpha(sentence[i])==0)
{
x=i+1;
count=count+1;
pointer=&sentence[x];
}
if(i==(length-1))
{
pointer=NULL;
break;
}
if(count==words)
{
break;
}
}
}
return pointer;
}
void printWord(char sentence[], int wordNumber)
{
char *pointer;
int length;
length=strlen(sentence);
int i;
pointer=skipWords(sentence,wordNumber);
if(pointer==NULL)
{
printf("This word doesn't exist");
return ;
}
printFirstWord(pointer);
}
int main()
{
char sentence[SIZE];
int length;
int words;
int check=1;
while(check==1)
{
printf("Write a sentence; ");
gets(sentence);
length=strlen(sentence);
printf("\nWhich word should be printed? ");
scanf(" %d",&words);
printWord(sentence, words);
printf("\n Do you want to enter a new sentence (press 1 to say yes)?");
scanf("%d",&check);
getchar();
}
return 0;
}
带有test.json文件的
aws ssm delete-parameters --cli-input-json test.json
仍然不起作用。
理想情况下,如果我可以使用--query并按原样使用它,那就太好了。
我正在像这样使用--query
{
"Names": [
"test1",
"test2"
]
}
答案 0 :(得分:3)
当您需要通过AWS Systems Manager参数存储中的路径删除所有参数时,必须处理10个以上的分页。 否则,该命令将失败并显示错误:
An error occurred (ValidationException) when calling the DeleteParameters operation: 1 validation error detected: Value '[/config/application/prop1, ...]' at 'names' failed to satisfy constraint: Member must have length less than or equal to 10
以下使用AWS CLI pagination options的Bash脚本按路径从AWS SSM参数存储中删除任意数量的参数:
#!/bin/bash
path=/config/application_dev/
while : ; do
aws ssm delete-parameters --names $(aws ssm get-parameters-by-path --path "$path" --query "Parameters[*].Name" --output text --max-items 10 $starting_token | grep -v None)
next_token=$(aws ssm get-parameters-by-path --path "$path" --query NextToken --output text --max-items 10 | grep -v None)
if [ -z "$next_token" ]; then
starting_token=""
break
else
starting_token="--starting-token $next_token"
fi
done
答案 1 :(得分:1)
您可以将get-parameters-by-path
与delete-parameters
组合:
aws ssm delete-parameters --names `aws ssm get-parameters-by-path --path / --query Parameters[].Name --output text`
我通过创建两个参数,然后运行上面的命令进行了测试。已成功通过参数删除。
答案 2 :(得分:0)
这是我的一线解决方案:
$ for key in $(aws ssm get-parameters-by-path --path "/" --recursive | jq -r '.Parameters[] | .Name' | tr '\r\n' ' '); do aws ssm delete-parameter --name ${key}; done
注意:如果您复制并粘贴此内容,请小心,因为它会删除“ /”下的所有内容
答案 3 :(得分:0)
试试这个并执行多次
aws ssm delete-parameters --names `aws ssm get-parameters-by-path --path / --recursive --query Parameters[].Name --output text --max-items 9`