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 deId
. CuandoId
no se especifica, proporcionaRoleName
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 deId
. CuandoId
no se especifica, proporcionaRoleName
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