Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
filtri parametrici per CloudFormation file IAc
Quando si fanno riferimenti ai AWS Proton parametri nei file AWS CloudFormation IAc, è possibile utilizzare i modificatori Jinja noti come filtri per convalidare, filtrare e formattare i valori dei parametri prima che vengano inseriti nel modello renderizzato. Le convalide dei filtri sono particolarmente utili quando si fa riferimento ai parametri di output dei componenti, poiché la creazione e il collegamento dei componenti vengono eseguiti dagli sviluppatori e un amministratore che utilizza gli output dei componenti in un modello di istanza di servizio potrebbe volerne verificare l'esistenza e la validità. Tuttavia, puoi utilizzare i filtri in qualsiasi file Jinja IAc.
Le sezioni seguenti descrivono e definiscono i filtri parametrici disponibili e forniscono esempi. AWS Proton definisce la maggior parte di questi filtri. Il default
filtro è un filtro integrato Jinja.
Proprietà dell'ambiente di formattazione per le attività di Amazon ECS
Dichiarazione
dict → proton_cfn_ecs_task_definition_formatted_env_vars (raw: boolean = True) → YAML list of dicts
Descrizione
Questo filtro formatta un elenco di output da utilizzare in una proprietà Environment nella ContainerDefinition
sezione di una definizione di attività Amazon Elastic Container Service (Amazon ECS) Elastic Container Service (Amazon ECS).
Imposta su raw
per False
convalidare anche il valore del parametro. In questo caso, è necessario che il valore corrisponda all'espressione ^[a-zA-Z0-9_-]*$
regolare. Se il valore non supera questa convalida, il rendering del modello fallisce.
Con il seguente modello di componente personalizzato:
Resources:
# ...
Outputs:
Output1:
Description: "Example component output 1"
Value: hello
Output2:
Description: "Example component output 2"
Value: world
E il seguente modello di servizio:
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
# ...
ContainerDefinitions:
- Name: MyServiceName
# ...
Environment:
{{ service_instance.components.default.outputs
| proton_cfn_ecs_task_definition_formatted_env_vars }}
Il modello di servizio reso è il seguente:
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
# ...
ContainerDefinitions:
- Name: MyServiceName
# ...
Environment:
- Name: Output1
Value: hello
- Name: Output2
Value: world
Proprietà di ambiente di formattazione per le funzioni Lambda
Dichiarazione
dict → proton_cfn_lambda_function_formatted_env_vars (raw: boolean = True) → YAML dict
Descrizione
Questo filtro formatta un elenco di output da utilizzare in una proprietà Environment nella Properties
sezione di una definizione di AWS Lambda funzione.
Imposta su raw
False
per convalidare anche il valore del parametro. In questo caso, è necessario che il valore corrisponda all'espressione ^[a-zA-Z0-9_-]*$
regolare. Se il valore non supera questa convalida, il rendering del modello fallisce.
Con il seguente modello di componente personalizzato:
Resources:
# ...
Outputs:
Output1:
Description: "Example component output 1"
Value: hello
Output2:
Description: "Example component output 2"
Value: world
E il seguente modello di servizio:
Resources:
Lambda:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
{{ service_instance.components.default.outputs
| proton_cfn_lambda_function_formatted_env_vars }}
Il modello di servizio reso è il seguente:
Resources:
Lambda:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
Output1: hello
Output2: world
Estrai gli ARN delle policy IAM da includere nei ruoli IAM
Dichiarazione
dict → proton_cfn_iam_policy_arns → YAML list
Descrizione
Questo filtro formatta un elenco di output da utilizzare in una ManagedPolicyArns proprietà nella Properties
sezione di una definizione di ruolo AWS Identity and Access Management (IAM). Il filtro utilizza l'espressione regolare ^arn:[a-zA-Z-]+:iam::\d{12}:policy/
per estrarre gli ARN validi delle policy IAM dall'elenco dei parametri di output. È possibile utilizzare questo filtro per aggiungere le politiche nei valori dei parametri di output a una definizione di ruolo IAM in un modello di servizio.
Con il seguente modello di componente personalizzato:
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 il seguente modello di servizio:
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:
# ...
Il modello di servizio reso è il seguente:
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:
# ...
Disinfetta i valori delle proprietà
Dichiarazione
string → proton_cfn_sanitize → string
Descrizione
Si tratta di un filtro generico. Utilizzatelo per convalidare la sicurezza del valore di un parametro. Il filtro verifica che il valore corrisponda all'espressione regolare ^[a-zA-Z0-9_-]*$
o sia un Amazon Resource Name (ARN) valido. Se il valore non supera questa convalida, il rendering del modello non riesce.
Con il seguente modello di componente personalizzato:
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
-
Il seguente riferimento in un modello di servizio:
# ... {{ service_instance.components.default.outputs.Output1 | proton_cfn_sanitize }}
Viene visualizzato come segue:
# ... This-is_valid_37
-
Il seguente riferimento in un modello di servizio:
# ... {{ service_instance.components.default.outputs.Output2 | proton_cfn_sanitize }}
Risultati con il seguente errore di rendering:
Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
-
Il seguente riferimento in un modello di servizio:
# ... {{ service_instance.components.default.outputs.SomeArn | proton_cfn_sanitize }}
Viene visualizzato come segue:
# ... arn:aws:
some-service
::123456789012:some-resource
/resource-name
Fornite valori predefiniti per riferimenti inesistenti
Descrizione
Il default
filtro fornisce un valore predefinito quando non esiste un riferimento allo spazio dei nomi. Utilizzatelo per scrivere modelli robusti in grado di eseguire il rendering senza errori anche quando manca il parametro a cui fate riferimento.
Il riferimento seguente in un modello di servizio fa sì che il rendering del modello non riesca se all'istanza del servizio non è associato un componente definito direttamente (predefinito) o se il componente allegato non ha un output denominatotest
.
# ...
{{ service_instance.components.default.outputs.test }}
Per evitare questo problema, aggiungete il default
filtro.
# ...
{{ service_instance.components.default.outputs.test | default("[optional-value]
") }}