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á.
ResourceReference
Uma referência a um recurso que o tipo de recurso de AWS::Serverless::Connector usa.
nota
Para recursos no mesmo modelo, forneça o Id
. Para recursos que não estejam no mesmo modelo, use uma combinação de outras propriedades. Para obter mais informações, consulte AWS SAM referência do conector.
Sintaxe
Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.
YAML
Arn:
String
Id:String
Name:String
Qualifier:String
QueueUrl:String
ResourceId:String
RoleName:String
Type:String
Propriedades
-
Arn
-
O ARN de um recurso.
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
Id
-
O ID lógico de um recurso no mesmo modelo.
nota
Quando
Id
for especificado, se o conector gerar políticas AWS Identity and Access Management (IAM), a função do IAM associada a essas políticas será inferida do recursoId
. QuandoId
não for especificado, forneça o recursoRoleName
para conectores anexarem as políticas do IAM geradas a um perfil do IAM.Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
Name
-
O nome de um recurso do .
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
Qualifier
-
Um qualificador para um recurso que restrinja seu escopo.
Qualifier
substitui o valor*
no final de um ARN de restrição de recursos. Para ver um exemplo, consulte API Gateway para invocar uma função do Lambda.nota
A definição do qualificador varia de acordo com o tipo de recurso. Para obter uma lista de tipos de recursos de origem e destino compatíveis, consulte AWS SAM referência do conector.
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
QueueUrl
-
O URL da fila do Amazon SQS. Essa propriedade só se aplica aos recursos do Amazon SQS.
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
ResourceId
-
O ID de um recurso. Por exemplo, o ID da API API Gateway.
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
RoleName
-
O nome do perfil associado a um recurso.
nota
Quando
Id
for especificado, se o conector gerar políticas do IAM, o perfil do IAM associado a essas políticas será inferida do recursoId
. QuandoId
não for especificado, forneça o recursoRoleName
para conectores anexarem as políticas do IAM geradas a um perfil do IAM.Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
-
Type
-
O AWS CloudFormation tipo de um recurso. Para obter mais informações, consulte a AWS referência de tipos de recursos e propriedades.
Tipo: string
Obrigatório: Condicional
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
Exemplos
API Gateway para invocar uma função do Lambda
O exemplo a seguir usa o AWS::Serverless::Connector recurso para permitir que o Amazon API Gateway invoque uma AWS Lambda função.
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