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

Filtros de parâmetros para arquivos CloudFormation IaC

Modo de foco
Filtros de parâmetros para arquivos CloudFormation IaC - AWS Proton

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

Ao fazer referências a AWS Proton parâmetros em seus arquivos AWS CloudFormation IaC, você pode usar modificadores Jinja conhecidos como filtros para validar, filtrar e formatar valores de parâmetros antes de serem inseridos no modelo renderizado. As validações de filtro são particularmente úteis quando se referem aos parâmetros de saída do componente, porque a criação e a anexação do componente são feitas pelos desenvolvedores, e um administrador que usa as saídas do componente em um modelo de instância de serviço pode querer verificar sua existência e validade. No entanto, você pode usar filtros em qualquer arquivo do Jinja IaC.

As seções a seguir descrevem e definem os filtros de parâmetros disponíveis e fornecem exemplos. AWS Proton define a maioria desses filtros. O filtro default é um filtro Jinja embutido.

Propriedades do ambiente de formato para tarefas do Amazon ECS

Declaração

dict → proton_cfn_ecs_task_definition_formatted_env_vars (raw: boolean = True) → YAML list of dicts

Descrição

Esse filtro formata uma lista de saídas a serem usadas em uma propriedade de ambiente na seção ContainerDefinition de definição de tarefa do Amazon Elastic Container Service (Amazon ECS).

Defina raw como False para também validar o valor do parâmetro. Nesse caso, o valor é necessário para corresponder à expressão regular ^[a-zA-Z0-9_-]*$. Se o valor falhar nessa validação, a renderização do modelo falhará.

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

E o seguinte modelo de serviço:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }}

O modelo de serviço renderizado é o seguinte:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: - Name: Output1 Value: hello - Name: Output2 Value: world

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

E o seguinte modelo de serviço:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }}

O modelo de serviço renderizado é o seguinte:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: - Name: Output1 Value: hello - Name: Output2 Value: world

Formatar propriedades do ambiente para funções do Lambda

Declaração

dict → proton_cfn_lambda_function_formatted_env_vars (raw: boolean = True) → YAML dict

Descrição

Esse filtro formata uma lista de saídas a serem usadas em uma propriedade Environment na Properties seção de uma definição de AWS Lambda função.

Defina raw como False para também validar o valor do parâmetro. Nesse caso, o valor é necessário para corresponder à expressão regular ^[a-zA-Z0-9_-]*$. Se o valor falhar nessa validação, a renderização do modelo falhará.

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

E o seguinte modelo de serviço:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: {{ service_instance.components.default.outputs | proton_cfn_lambda_function_formatted_env_vars }}

O modelo de serviço renderizado é o seguinte:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: Output1: hello Output2: world

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

E o seguinte modelo de serviço:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: {{ service_instance.components.default.outputs | proton_cfn_lambda_function_formatted_env_vars }}

O modelo de serviço renderizado é o seguinte:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: Output1: hello Output2: world

Extrair ARNs da política do IAM para incluir os perfis do IAM

Declaração

dict → proton_cfn_iam_policy_arns → YAML list

Descrição

Esse filtro formata uma lista de saídas a serem usadas em uma ManagedPolicyArns propriedade na Properties seção de uma definição de função AWS Identity and Access Management (IAM). O filtro usa a expressão regular ^arn:[a-zA-Z-]+:iam::\d{12}:policy/ para extrair ARNs válidos da política do IAM da lista de parâmetros de saída. Você pode usar esse filtro para acrescentar políticas nos valores dos parâmetros de saída a uma definição de perfil do IAM em um modelo de serviço.

Com o seguinte modelo de componente personalizado:

Resources: # ... ExamplePolicy1: Type: AWS::IAM::ManagedPolicy Properties: # ... ExamplePolicy2: Type: AWS::IAM::ManagedPolicy Properties: # ... # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world PolicyArn1: Description: "ARN of policy 1" Value: !Ref ExamplePolicy1 PolicyArn2: Description: "ARN of policy 2" Value: !Ref ExamplePolicy2

E o seguinte modelo de serviço:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

O modelo de serviço renderizado é o seguinte:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-1 - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-2 # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

Com o seguinte modelo de componente personalizado:

Resources: # ... ExamplePolicy1: Type: AWS::IAM::ManagedPolicy Properties: # ... ExamplePolicy2: Type: AWS::IAM::ManagedPolicy Properties: # ... # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world PolicyArn1: Description: "ARN of policy 1" Value: !Ref ExamplePolicy1 PolicyArn2: Description: "ARN of policy 2" Value: !Ref ExamplePolicy2

E o seguinte modelo de serviço:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

O modelo de serviço renderizado é o seguinte:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-1 - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-2 # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

Higienize os valores das propriedades

Declaração

string → proton_cfn_sanitize → string

Descrição

Esse é um filtro de uso geral. Use-o para validar a segurança do valor de um parâmetro. O filtro valida se o valor corresponde à expressão regular ^[a-zA-Z0-9_-]*$ ou se é um nome do recurso da Amazon (ARN) válido. Se o valor falhar nessa validação, a renderização do modelo falhará.

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example of valid output" Value: "This-is_valid_37" Output2: Description: "Example incorrect output" Value: "this::is::incorrect" SomeArn: Description: "Example ARN" Value: arn:aws:some-service::123456789012:some-resource/resource-name
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.Output1 | proton_cfn_sanitize }}

    Renderiza da seguinte forma:

    # ... This-is_valid_37
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.Output2 | proton_cfn_sanitize }}

    Resultados com o seguinte erro de renderização:

    Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.SomeArn | proton_cfn_sanitize }}

    Renderiza da seguinte forma:

    # ... arn:aws:some-service::123456789012:some-resource/resource-name

Com o seguinte modelo de componente personalizado:

Resources: # ... Outputs: Output1: Description: "Example of valid output" Value: "This-is_valid_37" Output2: Description: "Example incorrect output" Value: "this::is::incorrect" SomeArn: Description: "Example ARN" Value: arn:aws:some-service::123456789012:some-resource/resource-name
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.Output1 | proton_cfn_sanitize }}

    Renderiza da seguinte forma:

    # ... This-is_valid_37
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.Output2 | proton_cfn_sanitize }}

    Resultados com o seguinte erro de renderização:

    Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  • A seguinte referência em um modelo de serviço:

    # ... {{ service_instance.components.default.outputs.SomeArn | proton_cfn_sanitize }}

    Renderiza da seguinte forma:

    # ... arn:aws:some-service::123456789012:some-resource/resource-name

Fornecer valores padrão para referências inexistentes

Descrição

O filtro default fornece um valor padrão quando não existe uma referência de namespace. Use-o para escrever modelos robustos que possam ser renderizados sem falhas, mesmo quando o parâmetro ao qual você se refere estiver ausente.

A referência a seguir em um modelo de serviço faz com que a renderização do modelo falhe se a instância de serviço não tiver um componente anexado diretamente definido (padrão) ou se o componente anexado não tiver uma saída chamada test.

# ... {{ service_instance.components.default.outputs.test }}

Para evitar esse problema, adicione o filtro default.

# ... {{ service_instance.components.default.outputs.test | default("[optional-value]") }}

A referência a seguir em um modelo de serviço faz com que a renderização do modelo falhe se a instância de serviço não tiver um componente anexado diretamente definido (padrão) ou se o componente anexado não tiver uma saída chamada test.

# ... {{ service_instance.components.default.outputs.test }}

Para evitar esse problema, adicione o filtro default.

# ... {{ service_instance.components.default.outputs.test | default("[optional-value]") }}
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.