ResourceReference - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ResourceReference

Referencia a un recurso que utiliza el tipo de recurso AWS::Serverless::Connector.

nota

Para los recursos de la misma plantilla, proporciona la Id. Para recursos que no estén dentro de la misma plantilla, utilice una combinación de otras propiedades. Para obtener más información, consulta Referencia de conector AWS SAM.

Sintaxis

Para declarar esta entidad en tu plantilla de AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis:

YAML

Arn: String Id: String Name: String Qualifier: String QueueUrl: String ResourceId: String RoleName: String Type: String

Propiedades

Arn

El ARN de un recurso .

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Id

El ID lógico de un recurso de la misma plantilla.

nota

Cuando se especifica Id, si el conector genera políticas de AWS Identity and Access Management (de IAM), el rol de IAM asociado a esas políticas se deducirá del recurso de Id. Cuando Id no se especifica, proporciona RoleName del recurso para que los conectores adjunten las políticas de IAM generadas a un rol de IAM.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Name

El nombre de un recurso .

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Qualifier

Calificador de un recurso que reduce su alcance. Qualifier reemplaza el valor * al final de un ARN de restricción de recursos. Para ver un ejemplo, consulta API Gateway que invoca una función de Lambda.

nota

La definición del calificador varía según el tipo de recurso. Para ver una lista los puntos de enlace de origen y destino admitidos, consulta Referencia de conector AWS SAM.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

QueueUrl

La URL de la cola de Amazon SQS. Esta propiedad solo se aplica a los recursos de Amazon SQS.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

ResourceId

El ID de un recurso. Por ejemplo, el ID de API de la API Gateway.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

RoleName

El nombre del rol asociado a un recurso.

nota

Cuando se especifica Id, si el conector genera políticas de IAM, el rol de IAM asociado a esas políticas se deducirá del recurso de Id. Cuando Id no se especifica, proporciona RoleName del recurso para que los conectores adjunten las políticas de IAM generadas a un rol de IAM.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Type

El tipo AWS CloudFormation de un recurso. Para obtener más información, consulta la Referencia de tipos de recursos y propiedades de AWS.

Tipo: cadena

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Ejemplos

API Gateway que invoca una función de Lambda

En el siguiente ejemplo, se utiliza el recurso AWS::Serverless::Connector para permitir que Amazon API Gateway invoque una función de AWS Lambda.

YAML

Transform: AWS::Serverless-2016-10-31 Resources: MyRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: lambda.amazonaws.com ManagedPolicyArns: - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole MyFunction: Type: AWS::Lambda::Function Properties: Role: !GetAtt MyRole.Arn Runtime: nodejs16.x Handler: index.handler Code: ZipFile: | exports.handler = async (event) => { return { statusCode: 200, body: JSON.stringify({ "message": "It works!" }), }; }; MyApi: Type: AWS::ApiGatewayV2::Api Properties: Name: MyApi ProtocolType: HTTP MyStage: Type: AWS::ApiGatewayV2::Stage Properties: ApiId: !Ref MyApi StageName: prod AutoDeploy: True MyIntegration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref MyApi IntegrationType: AWS_PROXY IntegrationUri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations IntegrationMethod: POST PayloadFormatVersion: "2.0" MyRoute: Type: AWS::ApiGatewayV2::Route Properties: ApiId: !Ref MyApi RouteKey: GET /hello Target: !Sub integrations/${MyIntegration} MyConnector: Type: AWS::Serverless::Connector Properties: Source: # Use 'Id' when resource is in the same template Type: AWS::ApiGatewayV2::Api ResourceId: !Ref MyApi Qualifier: prod/GET/hello # Or "*" to allow all routes Destination: # Use 'Id' when resource is in the same template Type: AWS::Lambda::Function Arn: !GetAtt MyFunction.Arn Permissions: - Write Outputs: Endpoint: Value: !Sub https://${MyApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/prod/hello