Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

IAMR not supported

Offen
#255 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
aws, python

Rechercherichtung

Beginne damit, with_lib() und manually() aus dem Beispiel im Issue auszuführen, und vergleiche das Verhalten des generierten Benutzers und der Verbindung. Verfolge anschließend den Einstiegspunkt für die IAM-Authentifizierung des Connectors und überprüfe dann, dass ein IAMR-Benutzer erfolgreich eine Verbindung herstellt und dass SELECT 10,20 die erwarteten Zeilen zurückgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

I can't connect to an IAMR redshift user with this lib

CREATE USER "IAMR:test_to_delete_redshift_ci" PASSWORD DISABLE;

but It work when I manually use boto3+psycopg2


import os

import boto3
import psycopg2
import redshift_connector

os.environ["AWS_PROFILE"] = "redshift_test_role_2"

def with_lib():
    conn = redshift_connector.connect(
        iam=True,
        cluster_identifier="YYYYYY",
        database="AAAAA",
        db_user="test_to_delete_redshift_ci",
        password="",
        region="eu-west-1",
    )
    cursor = conn.cursor()
    cursor.execute("SELECT 10,20")
    print(cursor.fetchall())

def manually():

    RS_PORT = 5439
    DATABASE = 'AAAAAA'
    CLUSTER_ID = 'YYYYYYY'
    RS_HOST = 'XXXXXXXXXXX'

    client = boto3.client('redshift')

    cluster_creds = client.get_cluster_credentials_with_iam(ClusterIdentifier=CLUSTER_ID)

    print(cluster_creds)
    conn = psycopg2.connect(
        host=RS_HOST,
        port=RS_PORT,
        user=cluster_creds['DbUser'],
        password=cluster_creds['DbPassword'],
        database=DATABASE
    )
    cur = conn.cursor()
    cur.execute("SELECT 10,20")

    print(cur.fetchall())

if __name__ == '__main__':

    with_lib()
    manually()

with_lib fail with

redshift_connector.error.ProgrammingError: {'S': 'FATAL', 'C': '42704', 'M': 'user "IAM:test_to_delete_redshift_ci" does not exist', 'F': '/opt/brazil-pkg-cache/packages/RedshiftPADB/RedshiftPADB-1.0.7910.0/AL2_x86_64/generic-flavor/src/src/pg/src/backend/utils/init/miscinit.c', 'L': '976', 'R': 'InitializeSessionUserId'}
Vorherrschende Sprache
Python
Sterne
220
Forks
86
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus aws/amazon-redshift-python-driver

Alle Issues in aws/amazon-redshift-python-driver

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.