

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS::Serverless::Connector
<a name="sam-resource-connector"></a>

Konfiguriert Berechtigungen zwischen zwei Ressourcen. Eine Einführung in Konnektoren finden Sie unter[Verwaltung von Ressourcenberechtigungen mit AWS SAM Konnektoren](managing-permissions-connectors.md).

Weitere Informationen zu generierten AWS CloudFormation Ressourcen finden Sie unter[CloudFormation Ressourcen, die generiert werden, wenn Sie angeben AWS::Serverless::Connector](sam-specification-generated-resources-connector.md).

Wenn Sie Feedback zu Konnektoren geben möchten, [reichen Sie eine neue Ausgabe](https://github.com/aws/serverless-application-model/issues/new?assignees=&labels=area%2Fconnectors,stage%2Fneeds-triage&template=other.md&title=%28Feature%20Request%29) im *serverless-application-model AWS GitHub Repository* ein.

**Anmerkung**  
Wenn Sie auf bereitstellen AWS CloudFormation, werden Ihre AWS SAM Ressourcen in AWS SAM CloudFormation Ressourcen umgewandelt. Weitere Informationen finden Sie unter [Generierte CloudFormation Ressourcen für AWS SAM](sam-specification-generated-resources.md).

## Syntax
<a name="sam-resource-connector-syntax"></a>

Verwenden Sie eine der folgenden Syntaxen, um diese Entität in Ihrer Vorlage AWS Serverless Application Model (AWS SAM) zu deklarieren.

**Anmerkung**  
Für die meisten Anwendungsfälle empfehlen wir, die Syntax für eingebettete Konnektoren zu verwenden. Da sie in die Quellressource eingebettet ist, ist sie im Laufe der Zeit einfacher zu lesen und zu verwalten. Wenn Sie auf eine Quellressource verweisen müssen, die sich nicht in derselben AWS SAM Vorlage befindet, z. B. eine Ressource in einem verschachtelten Stapel oder eine gemeinsam genutzte Ressource, verwenden Sie die `AWS::Serverless::Connector` Syntax.

### Integrierte Konnektoren
<a name="sam-resource-connector-syntax-embedded"></a>

```
<source-resource-logical-id>:
  Connectors:
    <connector-logical-id:
      Properties:
        [Destination](#sam-connector-destination): ResourceReference | List of ResourceReference
        [Permissions](#sam-connector-permissions): List
        [SourceReference](#sam-connector-sourcereference): SourceReference
```

### AWS::Serverless::Connector
<a name="sam-resource-connector-syntax-connector"></a>

```
Type: AWS::Serverless::Connector
Properties:
  [Destination](#sam-connector-destination): ResourceReference | List of ResourceReference
  [Permissions](#sam-connector-permissions): List
  [Source](#sam-connector-source): ResourceReference
```

## Eigenschaften
<a name="sam-resource-connector-properties"></a>

 `Destination`   <a name="sam-connector-destination"></a>
Die Zielressource.  
*Typ*: [ResourceReference](sam-property-connector-resourcereference.md)\$1 Liste von [ResourceReference](sam-property-connector-resourcereference.md)  
*Erforderlich*: Ja  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Permissions`   <a name="sam-connector-permissions"></a>
Der Berechtigungstyp, den die Quellressource für die Zielressource ausführen darf.  
`Read`beinhaltet AWS Identity and Access Management (IAM) -Aktionen, die das Lesen von Daten aus der Ressource ermöglichen.  
`Write`beinhaltet IAM-Aktionen, die das Initiieren und Schreiben von Daten in eine Ressource ermöglichen.  
*Zulässige Werte*: `Read` oder `Write`.  
*Typ*: Liste  
*Erforderlich*: Ja  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein Äquivalent. CloudFormation 

 `Source`   <a name="sam-connector-source"></a>
Die Quellressource. Erforderlich, wenn die `AWS::Serverless::Connector` Syntax verwendet wird.  
*Typ:* [ResourceReference](sam-property-connector-resourcereference.md)  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `SourceReference`   <a name="sam-connector-sourcereference"></a>
Die Quellressource.  
Wird zusammen mit der Syntax der eingebetteten Konnektoren verwendet, wenn Sie zusätzliche Eigenschaften für die Quellressource definieren.
*Typ:* [SourceReference](sam-property-connector-sourcereference.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

## Beispiele
<a name="sam-resource-connector-examples"></a>

### Eingebettete Anschlüsse
<a name="sam-resource-connector-examples-embedded"></a>

Das folgende Beispiel verwendet eingebettete Konnektoren, um eine `Write` Datenverbindung zwischen einer AWS Lambda Funktion und einer Amazon DynamoDB-Tabelle zu definieren:

```
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyTable:
    Type: AWS::Serverless::SimpleTable
  MyFunction:
    Type: AWS::Serverless::Function
    Connectors:
      MyConn:
        Properties:
          Destination:
            Id: MyTable
          Permissions:
            - Write
    ...
```

Im folgenden Beispiel werden eingebettete Konnektoren verwendet, um Berechtigungen zu definieren`Read`: `Write`

```
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Connectors:
      MyConn:
        Properties:
          Destination:
            Id: MyTable
          Permissions:
            - Read
            - Write
  MyTable:
    Type: AWS::DynamoDB::Table
    ...
```

Im folgenden Beispiel werden eingebettete Konnektoren verwendet, um eine Quellressource mit einer anderen Eigenschaft als zu definieren`Id`:

```
Transform: AWS::Serverless-2016-10-31
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Connectors:
      ApitoLambdaConn:
        Properties:
          SourceReference:
            Qualifier: Prod/GET/foobar
          Destination:
            Id: MyTable
          Permissions:
            - Read
            - Write
  MyTable:
    Type: AWS::DynamoDB::Table
    ...
```

### AWS::Serverless::Connector
<a name="sam-resource-connector--examples-connector"></a>

Im folgenden Beispiel wird die [AWS::Serverless::Connector](#sam-resource-connector) Ressource verwendet, damit eine AWS Lambda Funktion aus einer Amazon DynamoDB-Tabelle liest und in diese schreibt:

```
MyConnector:
  Type: AWS::Serverless::Connector
  Properties:
    Source:
      Id: MyFunction
    Destination:
      Id: MyTable
    Permissions:
      - Read
      - Write
```

Im folgenden Beispiel wird die [AWS::Serverless::Connector](#sam-resource-connector) Ressource verwendet, damit eine Lambda-Funktion in ein Amazon SNS SNS-Thema schreibt, wobei sich beide Ressourcen in derselben Vorlage befinden:

```
MyConnector:
  Type: AWS::Serverless::Connector
  Properties:
    Source:
      Id: MyLambda
    Destination:
      Id: MySNSTopic
    Permissions:
      - Write
```

Im folgenden Beispiel wird die [AWS::Serverless::Connector](#sam-resource-connector) Ressource verwendet, um ein Amazon SNS SNS-Thema in eine Lambda-Funktion schreiben zu lassen, die dann in eine Amazon DynamoDB-Tabelle schreibt, wobei sich alle Ressourcen in derselben Vorlage befinden:

```
Transform: AWS::Serverless-2016-10-31
Resources:
  Topic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
        - Endpoint: !GetAtt Function.Arn
          Protocol: lambda

  Function:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: nodejs16.x
      Handler: index.handler
      InlineCode: |
        const AWS = require('aws-sdk');
        exports.handler = async (event, context) => {
          const docClient = new AWS.DynamoDB.DocumentClient();
          await docClient.put({ 
            TableName: process.env.TABLE_NAME, 
            Item: {
              id: context.awsRequestId,
              event: JSON.stringify(event)
            }
          }).promise();
        };
      Environment:
        Variables:
          TABLE_NAME: !Ref Table

  Table:
    Type: AWS::Serverless::SimpleTable

  TopicToFunctionConnector:
    Type: AWS::Serverless::Connector
    Properties:
      Source: 
        Id: Topic
      Destination: 
        Id: Function
      Permissions:
        - Write

  FunctionToTableConnector:
    Type: AWS::Serverless::Connector
    Properties:
      Source: 
        Id: Function
      Destination: 
        Id: Table
      Permissions:
        - Write
```

Im Folgenden sehen Sie die transformierte AWS CloudFormation Vorlage aus dem obigen Beispiel:

```
"FunctionToTableConnectorPolicy": {
  "Type": "AWS::IAM::ManagedPolicy",
  "Metadata": {
    "aws:sam:connectors": {
      "FunctionToTableConnector": {
        "Source": {
          "Type": "AWS::Lambda::Function"
        },
        "Destination": {
          "Type": "AWS::DynamoDB::Table"
        }
      }
    }
  },
  "Properties": {
    "PolicyDocument": {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:BatchWriteItem",
            "dynamodb:PartiQLDelete",
            "dynamodb:PartiQLInsert",
            "dynamodb:PartiQLUpdate"
          ],
          "Resource": [
            {
              "Fn::GetAtt": [
                "MyTable",
                "Arn"
              ]
            },
            {
              "Fn::Sub": [
                "${DestinationArn}/index/*",
                {
                  "DestinationArn": {
                    "Fn::GetAtt": [
                      "MyTable",
                      "Arn"
                    ]
                  }
                }
              ]
            }
          ]
        }
      ]
    },
    "Roles": [
      {
        "Ref": "MyFunctionRole"
      }
    ]
  }
}
```

# ResourceReference
<a name="sam-property-connector-resourcereference"></a>

Ein Verweis auf eine Ressource, die der [AWS::Serverless::Connector](sam-resource-connector.md) Ressourcentyp verwendet.

**Anmerkung**  
Geben Sie für Ressourcen in derselben Vorlage den an`Id`. Verwenden Sie für Ressourcen, die nicht in derselben Vorlage enthalten sind, eine Kombination anderer Eigenschaften. Weitere Informationen finden Sie unter [AWS SAM Steckverbinderreferenz](reference-sam-connector.md).

## Syntax
<a name="sam-property-connector-resourcereference-syntax"></a>

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer Vorlage AWS Serverless Application Model (AWS SAM) zu deklarieren.

### YAML
<a name="sam-property-connector-resourcereference-syntax.yaml"></a>

```
  [Arn](#sam-connector-resourcereference-arn): String
  [Id](#sam-connector-resourcereference-id): String
  [Name](#sam-connector-resourcereference-name): String
  [Qualifier](#sam-connector-resourcereference-qualifier): String
  [QueueUrl](#sam-connector-resourcereference-queueurl): String
  [ResourceId](#sam-connector-resourcereference-resourceid): String
  [RoleName](#sam-connector-resourcereference-rolename): String
  [Type](#sam-connector-resourcereference-type): String
```

## Eigenschaften
<a name="sam-property-connector-resourcereference-properties"></a>

 `Arn`   <a name="sam-connector-resourcereference-arn"></a>
Der ARN einer Ressource.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Id`   <a name="sam-connector-resourcereference-id"></a>
Die [logische ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) einer Ressource in derselben Vorlage.  
Wenn angegeben, `Id` wird, wenn der Connector AWS Identity and Access Management (IAM-) Richtlinien generiert, die diesen Richtlinien zugeordnete IAM-Rolle aus der Ressource abgeleitet. `Id` Wenn nicht angegeben, `Id` wird die Ressource für `RoleName` Connectors bereitgestellt, um generierte IAM-Richtlinien an eine IAM-Rolle anzuhängen.
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Name`   <a name="sam-connector-resourcereference-name"></a>
Der Name einer -Ressource.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Qualifier`   <a name="sam-connector-resourcereference-qualifier"></a>
Ein Qualifikator für eine Ressource, der ihren Umfang einschränkt. `Qualifier`ersetzt den `*` Wert am Ende einer Ressourcenbeschränkung ARN. Ein Beispiel finden Sie unter [API Gateway, das eine Lambda-Funktion aufruft](#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function).  
Die Definition des Qualifikators variiert je nach Ressourcentyp. Eine Liste der unterstützten Quell- und Zielressourcentypen finden Sie unter[AWS SAM Steckverbinderreferenz](reference-sam-connector.md).
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `QueueUrl`   <a name="sam-connector-resourcereference-queueurl"></a>
Die URL der Amazon SQS SQS-Warteschlange. Diese Eigenschaft gilt nur für Amazon SQS SQS-Ressourcen.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `ResourceId`   <a name="sam-connector-resourcereference-resourceid"></a>
Die ID einer Ressource. Zum Beispiel die API-Gateway-API-ID.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `RoleName`   <a name="sam-connector-resourcereference-rolename"></a>
Der Rollenname, der einer Ressource zugeordnet ist.  
Wenn angegeben, `Id` wird, wenn der Connector IAM-Richtlinien generiert, die diesen Richtlinien zugeordnete IAM-Rolle aus der Ressource abgeleitet. `Id` Wenn nicht angegeben, `Id` wird die Ressource für Connectoren bereitgestellt`RoleName`, um generierte IAM-Richtlinien an eine IAM-Rolle anzuhängen.
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Type`   <a name="sam-connector-resourcereference-type"></a>
Der CloudFormation Typ einer Ressource. Weitere Informationen finden Sie in der [Referenz zu AWS Ressourcen- und Eigenschaftstypen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

## Beispiele
<a name="sam-property-connector-resourcereference--examples"></a>

### API Gateway, das eine Lambda-Funktion aufruft
<a name="sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function"></a>

Das folgende Beispiel verwendet die [AWS::Serverless::Connector](sam-resource-connector.md) Ressource, um Amazon API Gateway das Aufrufen einer AWS Lambda Funktion zu ermöglichen.

#### YAML
<a name="sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function--yaml"></a>

```
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
```

# SourceReference
<a name="sam-property-connector-sourcereference"></a>

Ein Verweis auf eine Quellressource, die der [AWS::Serverless::Connector](sam-resource-connector.md) Ressourcentyp verwendet.

## Syntax
<a name="sam-property-connector-sourcereference-syntax"></a>

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer Vorlage AWS Serverless Application Model (AWS SAM) zu deklarieren.

### YAML
<a name="sam-property-connector-sourcereference-syntax.yaml"></a>

```
[Qualifier](#sam-connector-sourcereference-qualifier): String
```

## Eigenschaften
<a name="sam-property-connector-sourcereference-properties"></a>

 `Qualifier`   <a name="sam-connector-sourcereference-qualifier"></a>
Ein Qualifikator für eine Ressource, der ihren Geltungsbereich einschränkt. `Qualifier`ersetzt den `*` Wert am Ende einer Ressourcenbeschränkung ARN.  
Die Definition des Qualifikators variiert je nach Ressourcentyp. Eine Liste der unterstützten Quell- und Zielressourcentypen finden Sie unter[AWS SAM Steckverbinderreferenz](reference-sam-connector.md).
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

## Beispiele
<a name="sam-property-connector-sourcereference--examples"></a>

**Im folgenden Beispiel werden eingebettete Konnektoren verwendet, um eine Quellressource mit einer anderen Eigenschaft als zu definieren`Id`:**

```
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Connectors:
      ApitoLambdaConn:
        Properties:
          SourceReference:
            Qualifier: Prod/GET/foobar
          Destination:
            Id: MyTable
          Permissions:
            - Read
            - Write
  MyTable:
    Type: AWS::DynamoDB::Table
    ...
```