Usando extensões públicas no CloudFormation - AWS CloudFormation

Usando extensões públicas no CloudFormation

As extensões públicas são extensões do CloudFormation, como tipos de recursos, que são disponibilizadas por meio do registro do CloudFormation para uso em seus modelos. Extensões públicas podem ser publicadas no registro do CloudFormation por editores terceirizados, bem como pela Amazon.

nota

Assim como acontece com as extensões privadas, as extensões públicas de editores terceirizados podem implementar manipuladores de eventos executados durante a criação de recursos, leitura, atualização, lista e operações de exclusão da pilha. Por isso, usar essas extensões em suas pilhas do CloudFormation pode incorrer em cobranças na sua conta. Esses encargos serão acrescentados além de todas as cobranças decorrentes dos recursos criados. Para obter mais informações, consulte AWS CloudFormationPreço.

As extensões públicas são extensões do CloudFormation, como tipos de recursos ou módulos, publicadas publicamente no registro para uso por todos os usuários do CloudFormation. Isso inclui todas as extensões publicadas pela Amazon. Terceiros também podem publicar extensões públicas.

Existem dois tipos de extensões públicas:

  • Extensões públicas da Amazon

    As extensões publicadas pela Amazon são sempre públicas e ativadas por padrão, para que você não precise tomar nenhuma ação antes de usá-las em sua conta. Além disso, a Amazon controla o versionamento da extensão, para que você esteja sempre usando a versão mais recente disponível.

  • Extensões públicas de terceiros

    Essas são extensões disponibilizadas para uso geral por editores que não sejam a Amazon. Para usar uma extensão pública, você deve primeiro ativá-la em sua conta e região.

    Você pode publicar suas próprias extensões de terceiros para torná-las disponíveis aos usuários gerais do CloudFormation. Para obter mais informações, consulte Publishing extensions (Publicar extensões) no Manual do usuário da interface da linha de comando do CloudFormation.

Ativar extensões públicas para uso em sua conta

Para usar uma extensão pública de terceiros em seu modelo, você deve primeiro ativar a extensão para a conta e região em que deseja usá-la. A ativação de uma extensão a torna utilizável em operações de pilha na conta e na região em que ela for ativada. Quando você ativa uma extensão pública de terceiros, o CloudFormation cria uma entrada no registro de extensão da sua conta para a extensão ativada como uma extensão privada. Isso permite que você personalize a extensão conforme ela é ativada em sua conta das seguintes maneiras:

  • Especifique um alias a ser usado em vez do nome da extensão pública de terceiros. Isso pode ajudar a evitar colisões de nomenclatura entre extensões de terceiros.

  • Especifique se a extensão é atualizada automaticamente quando uma nova versão secundária ou patch estiver disponível.

  • Especifique a função de execução que o CloudFormation usa para ativar a extensão, e para configurar o registro em log para a extensão.

Quando você ativa uma extensão pública de terceiros, você também pode definir todas as propriedades de configuração que a extensão incluir. As propriedades de configuração definem como a extensão é configurada para uma determinada conta e região. Para obter mais informações, consulte Configuring extensions at the account level (Configurar extensões no nível da conta).

Configurar o CloudFormation para usar automaticamente novas versões de extensões

Ao ativar uma extensão, você também pode especificar se deseja ou não que o CloudFormation atualize automaticamente para usar uma nova versão secundária sempre que uma for liberada pelo editor da extensão. Por exemplo, suponha que você tenha especificado a atualização automática para uma extensão e o editor lança uma nova versão secundária depois que você tiver ativado a extensão. Na próxima vez que você executar uma operação de pilha, como criar ou atualizar uma pilha, usando um modelo que inclua essa extensão, o CloudFormation usará a nova versão secundária.

A atualização para uma nova versão de extensão, automática ou manualmente, não afeta nenhuma instância de extensão já provisionada em pilhas.

Isso se aplica somente a atualizações de versões secundárias. O CloudFormation trata as principais atualizações de versão de extensões como potencialmente contendo alterações quebradas e, portanto, exige que você atualize manualmente para uma nova versão principal de uma extensão.

As extensões públicas publicadas pela Amazon são ativadas por padrão para todas as contas e regiões nas quais estão disponíveis e sempre usam a versão mais recente disponível em cada região.

Importante

Esteja ciente de que, como você pode controlar se e quando uma extensão pública ativada é atualizada para a versão mais recente, você pode acabar com versões diferentes da mesma extensão implantadas em contas e regiões diferentes. Isso pode levar a resultados inesperados ao usar o mesmo modelo contendo essa extensão nessas contas e regiões.

Especificar aliases para se referir a extensões

Você não pode ativar mais de uma extensão com um determinado nome em uma determinada conta e região. Como editores diferentes podem oferecer extensões públicas com o mesmo nome de extensão, o CloudFormation permite especificar um alias para qualquer extensão pública de terceiros que você ativar.

Se você especificar um alias para a extensão, o CloudFormation tratará o alias como o nome do tipo de extensão na conta e na região. Você deve usar o alias para se referir à extensão em seus modelos, chamadas de API e console do CloudFormation.

Os aliases de extensão devem ser exclusivos em uma determinada conta e região. Você pode ativar o mesmo recurso público várias vezes na mesma conta e região, usando aliases de nome de tipo diferentes.

Importante

Embora os aliases de extensão só sejam exclusivos em uma determinada conta e região, recomendamos enfaticamente que os usuários não atribuam o mesmo alias a diferentes extensões públicas de terceiros em diferentes contas e regiões. Isso pode levar a resultados inesperados ao usar um modelo que contém o alias de extensão em várias contas ou regiões.

Especificar uma função de execução ao ativar extensões

Ao ativar um recurso, você pode especificar a função de execução do IAM que o CloudFormation deve assumir ao invocar essa extensão em sua conta e região.

Para que o CloudFormation assuma a função de execução, a função deve ter uma política de confiança definida com o CloudFormation. Por exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resources.cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Para obter mais informações, consulteModifying a role trust policy (Modificar uma política de confiança de função) no Manual do usuário do AWS Identity and Access Management.

Para ativar uma extensão pública para uso em sua conta usando o console do CloudFormation

  1. No console do CloudFormation, no painel de navegação do CloudFormation, em CloudFormation registry (Registro do CloudFormation), selecione Resource types (Tipos de recursos).

    O registro exibe as extensões públicas disponíveis em sua conta.

  2. Use o Filtro para selecionar o tipo de extensão e selecione Third party (Terceiros). (As extensões publicadas pela Amazon são ativadas por padrão.)

  3. Selecione a extensão e clique em Activate (Ativar).

    nota

    Se várias versões de uma extensão estiverem disponíveis, você poderá usar o menu Version (Versão) para selecionar a versão da extensão que deseja ativar. O padrão é a versão mais atual.

  4. Use as opções na página Activate extension (Ativar extensão) para personalizar como a extensão é ativada nesta conta.

    • Para ativar a extensão usando um alias de tipo de extensão:

      1. SelecioneOverride default (Substituir padrão)

      2. Insira o alias do tipo de extensão que você deseja usar com esta extensão. Verifique se o alias segue o formato recomendado para o tipo de extensão.

      Para obter mais informações, consulte Specifying aliases to refer to extension (Especificar aliases para se referir a extensões).

    • Se você estiver ativando um recurso privado, poderá especificar a função do IAM para o CloudFormation deverá assumir ao invocar a extensão. Para obter mais informações, consulte Specifying an execution role when activating extensions (Especificar uma função de execução para ativar extensões).

    • Em Logging config (Configuração do registro em log), especifique as informações de configuração do registro em log para uma extensão, se desejado.

      Lembre-se de que os nomes de chave logRoleArn e logGroupName diferenciam letras maiúsculas de minúsculas. Por exemplo:

      { "logRoleArn": "arn:aws:iam::account:role/rolename", "logGroupName": "log-group-name" }
    • Use as opções em Versioning (Versionamento) para especificar se o CloudFormation atualiza automaticamente a extensão nessa conta e região quando uma nova versão secundária for publicada. Para obter mais informações, consulte Setting CloudFormation to automatically use new versions of extensions (Configurar o CloudFormation para usar automaticamente novas versões de extensões).

  5. Especifique os dados de configuração, se necessário (opcional).

    Se a extensão exigir configuração adicional no nível da conta e da região, o CloudFormation incluirá a seção Configuration (Configuração) na página Activate extension (Ativar extensão). Você tem a opção de especificar os dados de configuração agora ou depois que a extensão foi ativada.

    • Para especificar os dados de configuração ao habilitar a extensão:

      1. Selecione Configure now (Configurar agora) e, em seguida, selecione Activate extension and continue (Ativar extensão e continuar).

        CloudFormation exibe a página Configure extension (Configurar extensão). Para exibir o esquema de configuração atual da extensão, verifique se a opção View configuration schema (Visualizar esquema de configuração) está ativada.

      2. Na caixa de texto Configuration JSON (Configurar o JSON), insira uma string JSON que represente o esquema de configuração que você deseja especificar para essa extensão.

      3. Selecione Configure extension (Configurar extensão).

    • Para especificar os dados de configuração posteriormente:

      • Selecione Configure later (Configurar mais tarde) e, em seguida, selecione Activate extension (Ativar extensão).

      Para especificar dados de configuração para uma extensão que já está ativada, consulte Configuring extensions at the account level (Configurar extensões no nível da conta).

    Se a extensão não exigir configuração, você não verá a seção Configuration (Configuração). Selecione Activate extension (Ativar extensão).

    Depois que a extensão for ativada com êxito, o CloudFormation exibirá a página de detalhes dessa extensão.

Para atualizar uma extensão pública ativada em sua conta usando o console do CloudFormation

Depois de ativar uma extensão em sua conta e região, você pode atualizar as seguintes propriedades dessa extensão conforme ela é ativada, incluindo:

  • O esquema de configuração

  • Se deseja ativar atualizações automáticas de versão

  • Para extensões registradas privadas, a função de execução a ser usada

  • As informações de configuração do registro em log

  1. Use o registro do CloudFormation para encontrar a extensão.

  2. No menuActions (Ações), selecioneEdit (Editar) e, em seguida, a opção de edição apropriada:

    • Para atualizar o esquema de configuração, consulte To specify configuration properties for an extension in the CloudFormation console (Para especificar propriedades de configuração para uma extensão no console do CloudFormation).

    • Para ativar ou desativar atualizações automáticas:

      1. Selecione Edit automatic updates (Editar atualizações automáticas).

      2. Selecione On (Ativado) ou (Off) (Desativado) e, em seguida, selecione Save (Salvar).

    • Para criar a função de execução:

      1. Selecione Edit execution role (Editar função de execução).

      2. Especifique o ARN da função do IAM que você deseja que o CloudFormation use ao invocar essa extensão e, em seguida, selecione Save (Salvar).

    • Para atualizar a configuração do registro em log:

      1. Selecione Edit logging config (Editar configuração do registro em log).

      2. Edite o JSON da configuração do registro em log e selecione Save (Salvar).

Para desativar uma extensão pública em sua conta usando o console do CloudFormation

  1. Use o registro do CloudFormation para encontrar a extensão.

  2. No menuActions (Ações), selecioneDeactivate (Desativar).

  3. SelecioneDeactivate (Desativar).

Para ativar uma extensão pública para uso em sua conta usando a CLI da AWS

  • Use activate-type para ativar a extensão e especifique se deseja atualizar automaticamente a extensão sempre que uma nova versão secundária da extensão for publicada.

    O exemplo abaixo especifica o ARN público de uma extensão pública a ser ativada para essa conta. Além disso, ele especifica que o CloudFormation atualize automaticamente a extensão sempre que uma nova versão secundária for publicada. O CloudFormation retorna um nome do recurso da Amazon (ARN) da extensão ativada, específico para essa conta e região.

    PROMPT> aws cloudformation activate-type --public-type-arn public_extension_ARN --auto-update-activated { "Arn": "624af370-311a-11e8-b6b7-500cexample" }

Para atualizar manualmente a versão de uma extensão pública usando a CLI da AWS

  • Use activate-type para ativar a extensão novamente. Use o parâmetro --version-update para especificar se deseja atualizar a extensão para a versão principal mais recente, a versão secundária mais recente ou atualizar se a extensão é atualizada automaticamente. Para obter mais informações, consulte ActivateType (Ativar o tipo).