Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Referência de sintaxe de esquema para Hooks AWS CloudFormation

Modo de foco
Referência de sintaxe de esquema para Hooks AWS CloudFormation - AWS CloudFormation

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á.

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á.

Esta seção descreve a sintaxe do esquema que você usa para desenvolver AWS CloudFormation Hooks.

Um Hook inclui uma especificação Hook representada por um JSON esquema e manipuladores Hook. A primeira etapa na criação de um Hook personalizado é modelar um esquema que define o Hook, suas propriedades e seus atributos. Quando você inicializa um projeto Hook personalizado usando o CloudFormation CLI initcomando, um arquivo de esquema Hook é criado para você. Use esse arquivo de esquema como ponto de partida para definir a forma e a semântica do seu Hook personalizado.

Sintaxe do esquema

O esquema a seguir é a estrutura de um Hook.

{ "typeName": "string", "description": "string", "sourceUrl": "string", "documentationUrl": "string", "definitions": { "definitionName": { . . . } }, "typeConfiguration": { "properties": { "propertyName": { "description": "string", "type": "string", . . . }, }, "required": [ "propertyName" . . . ], "additionalProperties": false }, "handlers": { "preCreate": { "targetNames": [ ], "permissions": [ ] }, "preUpdate": { "targetNames": [ ], "permissions": [ ] }, "preDelete": { "targetNames": [ ], "permissions": [ ] } }, "additionalProperties": false }
typeName

O nome exclusivo do seu Hook. Especifica um namespace de três partes para seu Hook, com um padrão recomendado de. Organization::Service::Hook

nota

Os seguintes namespaces da organização são reservados e não podem ser usados nos nomes do tipo Hook:

  • Alexa

  • AMZN

  • Amazon

  • ASK

  • AWS

  • Custom

  • Dev

Obrigatório: Sim

Pattern: ^[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}$

Mínimo: 10

Maximum: 196

description

Uma breve descrição do Hook exibido no CloudFormation console.

Obrigatório: Sim

sourceUrl

O URL do código-fonte do Hook, se público.

Obrigatório: não

Maximum: 4096

documentationUrl

A URL de uma página que fornece documentação detalhada para o Hook.

Obrigatório: Sim

Pattern: ^https\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])(\:[0-9]*)*([\?/#].*)?$

Maximum: 4096

nota

Embora o esquema Hook deva incluir descrições de propriedades completas e precisas, você pode usar a documentationURL propriedade para fornecer aos usuários mais detalhes, incluindo exemplos, casos de uso e outras informações detalhadas.

definitions

Use o definitions bloco para fornecer esquemas de propriedades Hook compartilhados.

É considerado uma prática recomendada usar a definitions seção para definir elementos do esquema que podem ser usados em vários pontos do esquema do tipo Hook. Em seguida, você pode usar um JSON ponteiro para referenciar esse elemento nos locais apropriados em seu esquema do tipo Hook.

Obrigatório: não

typeConfiguration

A definição dos dados de configuração de um Hook.

Obrigatório: Sim

properties

As propriedades do gancho. Todas as propriedades de um Hook devem ser expressas no esquema. Alinhe as propriedades do esquema Hook com as propriedades de configuração do tipo Hook.

nota

Propriedades aninhadas não são permitidas. Em vez disso, defina todas as propriedades aninhadas no definitions elemento e use um $ref ponteiro para referenciá-las na propriedade desejada.

additionalProperties

additionalProperties deve ser definido como false. Todas as propriedades de um Hook devem ser expressas no esquema: entradas arbitrárias não são permitidas.

Obrigatório: Sim

Valores válidos: false

handlers

Os manipuladores especificam as operações que podem iniciar o Hook definido no esquema, como os pontos de invocação do Hook. Por exemplo, um preUpdate manipulador é chamado antes das operações de atualização para todos os destinos especificados no manipulador.

Valores válidos: preCreate | preUpdate | preDelete

nota

Pelo menos um valor deve ser especificado para o manipulador.

Importante

Operações de empilhamento que resultam no status de UpdateCleanup não invocam um Hook. Por exemplo, durante os dois cenários a seguir, o preDelete manipulador do Hook não é invocado:

  • a pilha é atualizada após a remoção de um recurso do modelo.

  • um recurso com o tipo de atualização de substituição é excluído.

targetNames

Uma matriz de seqüências de nomes de tipos que Hook tem como alvo. Por exemplo, se um preCreate manipulador tem um AWS::S3::Bucket destino, o Hook é executado para buckets do Amazon S3 durante a fase de pré-provisionamento.

  • TargetName

    Especifique pelo menos um nome de destino para cada manipulador implementado.

    Pattern: ^[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}$

    Mínimo: 1

    Obrigatório: Sim

    Atenção

    SSM SecureString e as referências dinâmicas do Secrets Manager não são resolvidas antes de serem passadas para Hooks.

permissions

Uma matriz de strings que especifica as AWS permissões necessárias para invocar o manipulador.

Obrigatório: Sim

additionalProperties

additionalProperties deve ser definido como false. Todas as propriedades de um Hook devem ser expressas no esquema: entradas arbitrárias não são permitidas.

Obrigatório: Sim

Valores válidos: false

Exemplos de esquemas de Hooks

Exemplo 1

As apresentações passo a passo de Java e Python usam o exemplo de código a seguir. A seguir está um exemplo de estrutura para um Hook chamadomycompany-testing-mytesthook.json.

{ "typeName":"MyCompany::Testing::MyTestHook", "description":"Verifies S3 bucket and SQS queues properties before create and update", "sourceUrl":"https://mycorp.com/my-repo.git", "documentationUrl":"https://mycorp.com/documentation", "typeConfiguration":{ "properties":{ "minBuckets":{ "description":"Minimum number of compliant buckets", "type":"string" }, "minQueues":{ "description":"Minimum number of compliant queues", "type":"string" }, "encryptionAlgorithm":{ "description":"Encryption algorithm for SSE", "default":"AES256", "type":"string" } }, "required":[ ], "additionalProperties":false }, "handlers":{ "preCreate":{ "targetNames":[ "AWS::S3::Bucket", "AWS::SQS::Queue" ], "permissions":[ ] }, "preUpdate":{ "targetNames":[ "AWS::S3::Bucket", "AWS::SQS::Queue" ], "permissions":[ ] }, "preDelete":{ "targetNames":[ "AWS::S3::Bucket", "AWS::SQS::Queue" ], "permissions":[ "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetEncryptionConfiguration", "sqs:ListQueues", "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ] } }, "additionalProperties":false }

Exemplo 2

O exemplo a seguir é um esquema que usa o STACK e CAHNGE_SET for para targetNames direcionar um modelo de pilha e uma operação de conjunto de alterações.

{ "typeName":"MyCompany::Testing::MyTestHook", "description":"Verifies Stack and Change Set properties before create and update", "sourceUrl":"https://mycorp.com/my-repo.git", "documentationUrl":"https://mycorp.com/documentation", "typeConfiguration":{ "properties":{ "minBuckets":{ "description":"Minimum number of compliant buckets", "type":"string" }, "minQueues":{ "description":"Minimum number of compliant queues", "type":"string" }, "encryptionAlgorithm":{ "description":"Encryption algorithm for SSE", "default":"AES256", "type":"string" } }, "required":[ ], "additionalProperties":false }, "handlers":{ "preCreate":{ "targetNames":[ "STACK", "CHANGE_SET" ], "permissions":[ ] }, "preUpdate":{ "targetNames":[ "STACK" ], "permissions":[ ] }, "preDelete":{ "targetNames":[ "STACK" ], "permissions":[ ] } }, "additionalProperties":false }

Nesta página

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.