Como sabía, puedo usar ImportValue para hacer referencia al valor de otra pila de formación en la nube en parte de Resources .
NetworkInterfaces: - GroupSet: - Fn::ImportValue: Fn::Sub: "${NetworkStackNameParameter}-SecurityGroupID" AssociatePublicIpAddress: 'true' DeviceIndex: '0' DeleteOnTermination: 'true' SubnetId: Fn::ImportValue: Fn::Sub: "${NetworkStackNameParameter}-SubnetID" Pero parece que esta característica no se puede usar en Parameters
Parameters: VPC: Description: VPC ID Type: String Default: Fn::ImportValue: !Sub "${NetworkStackNameParameter}-VPC"Si uso la forma anterior, obtendrá el error:
Ocurrió un error (ValidationError) al llamar a la operación CreateChangeSet: Error de formato de plantilla: cada miembro predeterminado debe ser una cadena.
De todos modos para trabajar alrededor? porque la misma identificación de vpc, identificación de subred, identificación de grupo de seguridad, se usará no solo en un lugar.
Así que tengo que renunciar:
- En su plantilla de AWS CloudFormation, confirme que la sección Parámetros no contiene ninguna función intrínseca.
https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-template-validation/
Una forma de hacerlo es usar una condición:
Parameters: MyValue: Type: String Value: '' Conditions: MyValueExists: !Not [ !Equals [!Ref MyValue, '']] Resources: Resource: Type: AWS::Something Properties: Key: !If [MyValueExists, !Ref MyValue, !ImportValue 'Imported']