Loading
Generer en batchtilknytningsfil for eksternt lagrede filer

Generer en batchtilknytningsfil for eksternt lagrede filer

Forbered eksisterende filer til Amazon Bedrock eller Amazon Kendra ved at generere en tilknytningsfil, der knytter Salesforce-filer til deres Amazon S3-placeringer. Du skal kun udføre denne opgave, hvis du har eksisterende filer i Amazon S3, som du ønsker at søge i.

EditionsHeading

Brugertilladelser påkrævet
Hvis du vil aktivere Ekstern lagersøgning: Tilpas applikation
Hvis du vil se tilladelsessæt: Vis opsætning og konfiguration
Hvis du vil tildele tilladelsessæt: Tildel tilladelsessæt
Hvis du vil oprette lokale eksterne klientapps: Opret, rediger og slet eksterne klientapps

Før du går i gang, skal du bekræfte, at du har:

  • En Salesforce-organisation med en ekstern Amazon S3-datakilde af typen ContentHubAWSS3. Se Opsæt semantisk søgning.
  • En AWS-konto med tilladelse til at oprette Lambda-funktioner, IAM-roller og S3-inddelinger.
  • En Amazon S3-inddeling, som tilknytningsfilen skal lagres i.

Opret en Salesforce-integrationsbruger

  1. Opret en integrationsbruger fra Opsætning i Salesforce.
  2. Konfigurer brugeren med disse værdier.
    Felt Værdi
    Brugerlicens Salesforce-integration
    Profil Mindste adgang - Kun API-integrationer
  3. Tildel Salesforce API Integration-tilladelsessætlicensen til brugeren.
  4. Opret et tilladelsessæt, der tildeler disse tilladelser:
    • API aktiveret
    • Forespørg i alle filer
  5. Tildel tilladelsessættet til integrationsbrugeren.

Hvis du ønsker yderligere oplysninger, kan du se Integrationsbrugere i Salesforce Developer-dokumentationen og Opret tilladelsessæt.

Opret en ekstern klientapp

Opret en lokal ekstern klientapp, der bruger OAuth 2.0-klientlegitimationsoplysningsforløbet. I OAuth-indstillingerne skal du tilføje omfanget Administrer brugerdata via API'er (api) og konfigurere Salesforce-integrationsbrugeren som kørsel som bruger.

Hvis du ønsker detaljerede instruktioner, kan du se Opret en ekstern klientapp og Konfigurer et legitimationsoplysningsforløb.

Opret tilknytningsfilen

Implementer en AWS Lambda-funktion, der forespørger på Salesforce for eksternt lagrede filer og genererer en tilknytning mellem hvert Salesforce ContentDocument-id og dets Amazon S3-placering.

Konfigurer funktionen gennem miljøvariabler. Vedhæft en IAM-kørselsrolle med s3:PutObject, der giver tilladelse til at skrive tilknytningsfilen til den udpegede S3-inddeling og sende logfiler til Amazon CloudWatch.

Hvis du ønsker instruktioner, kan du se Implementer Python Lambda-funktioner, Brug af Lambda-miljøvariabler, Lambda-kørselsrolle i AWS-dokumentationen.

Her er der reference til Lambda-kode:

# 1. Authenticate to Salesforce (OAuth 2.0 Client Credentials)
token = sf_oauth_token(SF_INSTANCE_URL, SF_CLIENT_ID, SF_CLIENT_SECRET)

# 2. Query ContentVersion -> ContentDocumentId, ExternalDocumentInfo2, ExternalDataSource
soql = ("SELECT ContentDocumentId, ExternalDocumentInfo2, "
        "ExternalDataSource.NamedCredentialId, ExternalDataSource.MasterLabel "
        "FROM ContentVersion WHERE IsLatest=true AND ExternalDocumentInfo2!=null "
        "AND ExternalDataSource.Type='ContentHubAWSS3'")
records = sf_query_all(token, soql)

# 3. Resolve each Named Credential's S3 endpoint URL (Tooling API)
nc_url = {nc_id: sf_named_credential_url(token, nc_id)
          for nc_id in {r["ExternalDataSource"]["NamedCredentialId"] for r in records}}

# 4. Build the mapping keyed by the external document id
mapping = defaultdict(list)
for r in records:
    nc_id = r["ExternalDataSource"]["NamedCredentialId"]
    mapping[r["ExternalDocumentInfo2"]].append({
        "ContentDocumentId": r["ContentDocumentId"],
        "DataSourceLabel": r["ExternalDataSource"]["MasterLabel"],
        "NamedCredentialId": nc_id,
        "S3_Endpoint_URL": nc_url.get(nc_id),
    })

# 5. Upload the mapping JSON to S3
boto3.client("s3").put_object(
    Bucket=S3_BUCKET_NAME, Key=S3_FILE_NAME,
    Body=json.dumps(mapping, indent=4), ContentType="application/json")
 
Indlæser
Salesforce Help | Article