As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode adicionar filtros de nível de pilha aos seus CloudFormation Hooks para direcionar pilhas específicas com base nos nomes e funções das pilhas. Isso é útil nos casos em que você tem várias pilhas com os mesmos tipos de recursos, mas o Hook é destinado a pilhas específicas.
Esta seção explica como esses filtros funcionam e fornece exemplos que você pode seguir.
A estrutura básica de uma configuração de Hook sem filtragem em nível de pilha é assim:
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
}
}
}
Para obter mais informações sobre a HookConfiguration
sintaxe, consulteReferência de sintaxe de esquema de configuração de hook.
Para usar filtros de nível de pilha, adicione uma StackFilters
chave abaixoHookConfiguration
.
A StackFilters
chave tem um membro obrigatório e dois membros opcionais.
-
FilteringCriteria
(obrigatório) -
StackNames
(Opcional) -
StackRoles
(Opcional)
As StackRoles
propriedades StackNames
or são opcionais. No entanto, você deve especificar pelo menos uma dessas propriedades.
Se você criar um Hook que tenha como alvo API as operações do Cloud Control, todos os filtros de nível de pilha serão ignorados.
FilteringCriteria
FilteringCriteria
é um parâmetro obrigatório que especifica o comportamento da filtragem. Ele pode ser definido como ALL
ouANY
.
-
ALL
invoca o Hook se todos os filtros forem compatíveis. -
ANY
invoca o Hook se algum filtro for compatível.
StackNames
Para especificar um ou mais nomes de pilha como filtros na configuração do Hooks, use a seguinte estrutura: JSON
"StackNames": {
"Include": [
"string"
],
"Exclude": [
"string"
]
}
É necessário especificar um dos seguintes:
-
Include
: Lista de nomes de pilhas a serem incluídos. Somente as pilhas especificadas nesta lista invocarão o Hook.-
Tipo: matriz de strings
-
Número máximo de itens: 50
-
Itens principais: 1
-
-
Exclude
: lista de nomes de pilha a serem excluídos. Todas as pilhas, exceto as listadas aqui, invocarão o Hook.-
Tipo: matriz de strings
-
Número máximo de itens: 50
-
Itens principais: 1
-
Cada nome de pilha nas Exclude
matrizes Include
e deve seguir os seguintes requisitos de padrão e comprimento:
-
Padrão:
^[a-zA-Z][-a-zA-Z0-9]*$
-
Comprimento máximo: 128
StackRoles
Para especificar uma ou mais IAMfunções como filtros na configuração do Hook, use a seguinte JSON estrutura:
"StackRoles": {
"Include": [
"string"
],
"Exclude": [
"string"
]
}
É necessário especificar um dos seguintes:
-
Include
: Lista de IAM funções ARNs para direcionar as pilhas associadas a essas funções. Somente as operações de pilha iniciadas por essas funções invocarão o Hook.-
Tipo: matriz de strings
-
Número máximo de itens: 50
-
Itens principais: 1
-
-
Exclude
: Lista de IAM funções ARNs das pilhas que você deseja excluir. O Hook será invocado em todas as pilhas, exceto aquelas iniciadas pelas funções especificadas.-
Tipo: matriz de strings
-
Número máximo de itens: 50
-
Itens principais: 1
-
Cada função de pilha nas Exclude
matrizes Include
e deve atender aos seguintes requisitos de padrão e comprimento:
-
Padrão:
arn:.+:iam::[0-9]{12}:role/.+
-
Comprimento máximo: 256
Include
e Exclude
Cada filtro (StackNames
eStackRoles
) tem uma Include
lista e uma Exclude
lista. Usando StackNames
como exemplo, o Hook só é invocado nas pilhas especificadas na Include
lista. Se os nomes das pilhas forem especificados apenas na Exclude
lista, o gancho será invocado somente nas pilhas que não estão na lista. Exclude
Se ambos Include
Exclude
forem especificados, o Hook tem como alvo o que está na Include
lista e não o que está na Exclude
lista.
Por exemplo, suponha que você tenha quatro pilhas: A, B, C e D.
-
"Include": ["A","B"]
O Gancho é invocado em A e B. -
"Exclude": ["B"]
O Gancho é invocado em A, C e D. -
"Include": ["A","B","C"], "Exclude": ["A","D"]
O Gancho é invocado em B e C. -
"Include": ["A","B","C"], "Exclude": ["A”,"B","C"]
O Hook não é invocado em nenhuma pilha.
Exemplos de filtros de nível de pilha
Esta seção fornece exemplos que você pode seguir para criar filtros de nível de pilha para AWS CloudFormation Hooks.
Exemplo 1: Incluir pilhas específicas
O exemplo a seguir especifica uma Include
lista. O Hook só é invocado em pilhas chamadas stack-test-1
e. stack-test-2
stack-test-3
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
,
"StackFilters": {
"FilteringCriteria": "ALL"
,
"StackNames": {
"Include": [
"stack-test-1",
"stack-test-2",
"stack-test-3"
]
}
}
}
}
}
Exemplo 2: Excluir pilhas específicas
Se, em vez disso, os nomes das pilhas forem adicionados à Exclude
lista, o Hook será invocado em qualquer pilha que não tenha nomestack-test-1
, ou. stack-test-2
stack-test-3
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
,
"StackFilters": {
"FilteringCriteria": "ALL"
,
"StackNames": {
"Exclude": [
"stack-test-1",
"stack-test-2",
"stack-test-3"
]
}
}
}
}
}
Exemplo 3: Combinação de incluir e excluir
Se Exclude
as listas Include
e não forem especificadas, o Hook só será invocado nas pilhas Include
que não estão na Exclude
lista. No exemplo a seguir, o Hook só é invocado emstack-test-3
.
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
,
"StackFilters": {
"FilteringCriteria": "ALL"
,
"StackNames": {
"Include": [
"stack-test-1",
"stack-test-2",
"stack-test-3"
],
"Exclude": [
"stack-test-1",
"stack-test-2"
]
}
}
}
}
}
Exemplo 4: combinação de nomes e funções da pilha com critérios ALL
O Hook a seguir inclui três nomes de pilha e uma função de pilha. Como o FilteringCriteria
é especificado comoALL
, o Hook só é invocado para pilhas que tenham um nome de pilha correspondente e a função de pilha correspondente.
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
,
"StackFilters": {
"FilteringCriteria": "ALL"
,
"StackNames": {
"Include": [
"stack-test-1",
"stack-test-2",
"stack-test-3"
]
},
"StackRoles": {
"Include": ["arn:aws:iam::123456789012:role/hook-role"
]
}
}
}
}
}
Exemplo 5: combinação de nomes e funções da pilha com critérios ANY
O Hook a seguir inclui três nomes de pilha e uma função de pilha. Como o FilteringCriteria
é especificado comoANY
, o Hook é invocado para pilhas que têm um nome de pilha correspondente ou a função de pilha correspondente.
{
"CloudFormationConfiguration": {
"HookConfiguration": {
"HookInvocationStatus": "ENABLED"
,
"TargetOperations": [
"STACK",
"RESOURCE"
],
"FailureMode": "WARN"
,
"Properties": {}
,
"StackFilters": {
"FilteringCriteria": "ANY"
,
"StackNames": {
"Include": [
"stack-test-1",
"stack-test-2",
"stack-test-3"
]
},
"StackRoles": {
"Include": ["arn:aws:iam::123456789012:role/hook-role"
]
}
}
}
}
}